2
// assume file points to a file
struct myStruct
{
WORD word;
WORD word2;
};
兩個相互競爭的規範:(1)二進制文件解析;這兩個電話有什麼區別?
myStruct a;
a.word = 0xABCD;
a.word2 = 0xFADB;
fwrite(&a, sizeof(myStruct), 1, file);
output:
cdab dbfa
對比:(2)
DWORD word = 0xABCDFADB;
fwrite(&word, sizeof(DWORD), 1, file);
output:
dbfa cdab
我的問題是:爲什麼不使用fwrite服從書寫結構?我會假設(1)與(2)具有相同的輸出。然而,fwrite單獨讀取每個結構成員變量(然後以little-endian順序編寫它們)。相反,我期望(1)將整個結構作爲一個連續的塊讀取,並開始從該塊末尾開始寫入二進制數據(而不是在第一個成員變量的末尾)。
想法?
有兩件事:(a)這是C,請刪除C++標籤,(b)兩次賦予'a.word'有什麼意義? –
編輯以反映您的建議更改 –