当前位置: 技术问答>linux和unix
Linux下如何实现1字节对齐?
来源: 互联网 发布时间:2015-04-15
本文导语: Linux下如何实现1字节对齐? 各位: struct TT { char C1; char C2; long lLong; }; BC31下sizeof(TT)==6. LINUX下sizeof(TT)==8. Linux下如何实现1字节对齐,GCC可有相关参数? | int main(int argc, char *argv[]...
Linux下如何实现1字节对齐?
各位:
struct TT
{
char C1;
char C2;
long lLong;
};
BC31下sizeof(TT)==6.
LINUX下sizeof(TT)==8.
Linux下如何实现1字节对齐,GCC可有相关参数?
各位:
struct TT
{
char C1;
char C2;
long lLong;
};
BC31下sizeof(TT)==6.
LINUX下sizeof(TT)==8.
Linux下如何实现1字节对齐,GCC可有相关参数?
|
int main(int argc, char *argv[])
{
typedef struct {
char a;
char b;
int c __attribute__ ((packed));
} MyStruct;
MyStruct Test ;
printf("Sizeof Test = %dn", sizeof(Test));
return(EXIT_SUCCESS);
}
$ ./test
Sizeof Test = 6
{
typedef struct {
char a;
char b;
int c __attribute__ ((packed));
} MyStruct;
MyStruct Test ;
printf("Sizeof Test = %dn", sizeof(Test));
return(EXIT_SUCCESS);
}
$ ./test
Sizeof Test = 6
|
用#pragma pack (1)
#pragma pack ()
预处理指令对更好一些,
可移植,并且可以一次定义一大堆数据
#pragma pack ()
预处理指令对更好一些,
可移植,并且可以一次定义一大堆数据
|
__attribute__((packed))也可以用在Mystruct之后