当前位置: 技术问答>linux和unix
这些符号是什么意思啊?
来源: 互联网 发布时间:2015-04-15
本文导语: 在程序中,看到这些符号,不知道是什么意思,也不知道它们起什么作用? int c __attribute__ ((packed)); #pragma pack (1) #pragma pack () | 这种问题问了很多遍了,这取消对齐方式,防止优化 | ...
在程序中,看到这些符号,不知道是什么意思,也不知道它们起什么作用?
int c __attribute__ ((packed));
#pragma pack (1)
#pragma pack ()
int c __attribute__ ((packed));
#pragma pack (1)
#pragma pack ()
|
这种问题问了很多遍了,这取消对齐方式,防止优化
|
刚有类似的问题被提过,如果
struct TestStruct{
char a;
char b;
int c;
}
sizeof(struct TestStruct) = 8
如果用了上边的东西
盖成
struct TestStruct{
char a;
char b;
int c __attribute__ ((packed));
}
sizeof(struct TestStruct) = 6
struct TestStruct{
char a;
char b;
int c;
}
sizeof(struct TestStruct) = 8
如果用了上边的东西
盖成
struct TestStruct{
char a;
char b;
int c __attribute__ ((packed));
}
sizeof(struct TestStruct) = 6