2016-04-02 21 views
-2

Profesörüm, ikili bir dosyada okuma/yazma yaparken sizeof (çift) kullanmamamı söyledi. Şimdi bana nedenini söyledi, ama unuttum. Örnek: yerineNeden C dosyalarında sizeof (double) kullanmamalıyım

double grade; 

fread(grade, sizeof(double), 1, fp) != 1 

Ama:

fread(grade, 4, 1, fp) != 1 

Şimdi, hile çift 4 veya 8 byte olabilir, bu nedenle kimse bu durumda ne yapar?

+1

IMO ilk sistemden bağımsız, ancak ikincisi – Pooya

+1

değil. "Fread" in ilk parametresi bir işaretçidir. –

+1

Sanırım sen korkuyorsun demek (& notu ... '- ve bunun neden olduğunu söyleyemiyorum neden –

cevap

2

sizeof(grade) kullanmak daha iyidir, çünkü değişken türünü değiştirirseniz, bu satır hala düzgün çalışır. Belki bunu söyleyebilirdi?

fread(&grade, sizeof(grade), 1, fp) 

Ancak değeri doğrudan yazmak için bir neden göremiyorum çünkü başka bir sistemde çalışmayabilir.

İlgili konular