1
我需要將XCode中的結構對齊設置爲1個字節的打包,並且添加編譯指令「#pragma pack(1)」似乎沒有任何作用。 有沒有另一種方法來做到這一點? 我必須閱讀遺留數據,所以手工打包不是一種選擇。 謝謝,如何在Xcode中設置結構對齊
比爾
我需要將XCode中的結構對齊設置爲1個字節的打包,並且添加編譯指令「#pragma pack(1)」似乎沒有任何作用。 有沒有另一種方法來做到這一點? 我必須閱讀遺留數據,所以手工打包不是一種選擇。 謝謝,如何在Xcode中設置結構對齊
比爾
Xcode是用GCC,所以你必須使用GCC的具體說明:http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Type-Attributes.html
例如:
struct S { char f[3]; } __attribute__ ((aligned (1)));
這個結構將因此用最少的對準1個字節。
您還擁有packed屬性,它指定不應該添加填充。
編輯
我忘了提,但作爲@Stephen楚mentionned它,MSVC編譯風格GCC也支持:http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html
正確的序列化/反序列化程序是永遠正確的選擇了依靠編譯器包裝和排序。 – 2011-12-14 13:49:04
因爲它似乎不是一個命令的問題(請參閱我的編輯)是否可以顯示相關代碼?也許還有更多的參與。或者,這可能是您嘗試執行的默認行爲。 – Geoffroy 2011-12-14 17:56:41