2016-04-02 4 views
-2

Mein Professor sagte mir, nicht zu verwenden sizeof (double) beim Lesen/Schreiben in eine Binärdatei. Jetzt hat er mir den Grund gesagt, aber ich habe es vergessen. Beispiel:Warum sollte ich nicht sizeof (double) in C-Dateien verwenden

double grade; 

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

Aber statt:

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

Nun, der Trick ist, dass die Doppel 4 sein könnten oder 8 Bytes, so etwas macht man in dieser Situation tun?

+1

IMO der erste ist systemunabhängig, aber der zweite ist nicht – Pooya

+1

Der erste Parameter von 'fread' ist ein Zeiger. –

+1

Ich denke, du meintest 'fread (& grade ...' - und ich kann nicht denken, warum er das sagen würde –

Antwort

2

Es ist besser zu verwenden sizeof(grade), denn wenn Sie den Variablentyp ändern, funktioniert diese Linie immer noch gut. Vielleicht würde er das sagen?

Aber ich sehe keinen Grund, den Wert direkt zu schreiben, weil es möglicherweise nicht auf einem anderen System funktioniert.