我有一个结构,例如
typedef struct
{
int a; // Let's say this ends up being 4 bytes
int b; // 4 bytes
char text[10]; // 10 bytes
} blah_t;
static blah_t myvar;
- 假设 中字段大小的总和为 18 个字节
blah_t
,但sizeof(blah_t)
由于填充而为 20。 - 这
myvar
是静态的,因此它将被零初始化。
问题:
- 对于静态变量,填充字节 19 和 20 是否保证为 0?如果不是,我需要为
memset(&myvar, 0, sizeof(blah_t))
使任何memcmp
结构有效——即使对于静态变量也是如此。 - 怎么样
calloc(1, sizeof(blah_t))
?字节 19 和 20 是否保证为零?我相信情况就是这样。