我不是C语言的新手,但有人能在这一点上给我一些启发吗:
printf( "%d %d\n", sizeof( int ), sizeof( unsigned char ) );按照预期的4和1打印。
typedef struct
{
int a;
unsigned char b;
} test
printf( "%d\n", sizeof( test ) );打印8...我真的很困惑!
发布于 2012-03-12 08:46:43
它被称为"alignment“。您的struct已填充。您可以"pack“它(不同的编译器有不同的方式来定义应该打包哪种类型),然后它将不会对齐,但您可能会遇到运行时数据访问问题。
https://stackoverflow.com/questions/9660420
复制相似问题