結構體 位元組對齊 __align() __attribute((aligned (n))) #pragma pack(n)
阿新 • • 發佈:2019-01-31
#pragma pack(4)
struct mystu
{
char a ;
int b ;
};
#pragma pack()
GCC推薦的對齊指令如下:
_attribute_((packed))和_attribute_((aligned(n)))
armcc一般是專門針對arm晶片開發時用的編譯器,語法除了遵守標準C語法外,還支援arm體系下特有的語法規則。gcc應用範圍場景比較廣泛,可以是gcc for x86、gcc for arm,gcc for mips等等,也就是說gcc是在GNU協議下的一款多用途跨平臺的開源編譯器。gcc功能特強,應用範圍特廣,可以這麼說只要涉及到C/C++語言開發、Linux開發、開源軟體開發、嵌入式開發等等領域的,沒有不會不用到GCC的。
struct stu{
char sex;
int length;
char name[10];
}__attribute__ ((aligned (1)));
#define GNUC_PACKED __attribute__((packed))
struct PACKED test
{
char x1;
short x2;
float x3;
char x4;
}GNUC_PACKED;
__attribute__((packed))得變數或者結構體成員使用最小的對齊方式,即對變數是一位元組對齊,對域(field)是位對齊.