2016-04-02 59 views
-2

我的教授告訴我在讀取/寫入二進制文件時,不要使用sizeof(double)的。現在,他告訴我理由,但我忘了。例如:爲什麼我不應該在C文件中使用sizeof(double)

double grade; 

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

但是,相反:

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

現在,問題是,雙可能是4首或8個字節,那麼,是什麼一個在這種情況下怎麼辦?

+1

IMO的第一個系統獨立,但第二個不是 – Pooya

+1

'fread'的第一個參數是一個指針。 –

+1

我想你的意思是'fread(&grade ......' - 我想不出爲什麼他會這樣說 –

回答

2

最好使用sizeof(grade),因爲如果更改變量類型,此行仍然正常工作。也許他會這麼說?

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

但我沒有理由直接寫入該值,因爲它可能無法在另一個系統上工作。

相關問題