该用法是__attribute__属性的作用之一,用来告诉编译器不要对结构中的数据进行对齐优化。其它属性后续再解释。
-
#include <stdio.h>
-
struct pk{
-
int china;
-
char name[2];
-
};
-
struct pk2{
-
int china;
-
char name[2];
-
}__attribute__((packed));
-
-
struct __attribute__((packed)) pk3{
-
int china;
-
char name[2];
-
};
-
-
int main()
-
{
-
printf("sizeof(pk): %d, sizeof(pk2): %d sizeof(pk3): %d\n",
-
sizeof(struct pk), sizeof(struct pk2), sizeof(struct pk3));
-
return 0;
-
}
Linux gcc-4.1.2下结果为8 6 6
阅读(2715) | 评论(0) | 转发(0) |