arm-linux-gcc 與 gcc 關於字節對齊問題

方法1: #pragma pack(n)

        使用僞指令#pragma pack (n),編譯器將按照n 個字節對齊;
        使用僞指令#pragma pack (),取消自定義字節對齊方式。
        如果#pragma pack (n)中指定的n 大於結構體中最大成員的size,則其不起作用,結構體仍然按照size 最大的成員進行對界

特別注意:該方法是在 gcc 4 中增加的,至少 gcc 3.4 沒有這個。

 

方法2: typedef struct typeabc
                {
                    double a;
                    int    b;
                    char   c;
                }__attribute__( ( packed, aligned( 1 ) ) ) abc;

 

 

其它:gcc下默認爲4字節對齊,網絡協議默認1字節對齊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章