标签: c
我不是“那个”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 ...我真的很困惑!
答案 0 :(得分:1)
它被称为“alignment”。您的struct已填充。你可以“pack”它(不同的编译器有不同的方法来定义应该打包的类型),然后它不会被对齐,但你可能有运行时数据访问问题。
struct