Sizeof Size与Sizeof Type

时间:2012-03-12 00:43:36

标签: 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 ...我真的很困惑!

1 个答案:

答案 0 :(得分:1)

它被称为“alignment”。您的struct已填充。你可以“pack”它(不同的编译器有不同的方法来定义应该打包的类型),然后它不会被对齐,但你可能有运行时数据访问问题。