【发布时间】:2013-02-28 18:08:18
【问题描述】:
我有一个结构,例如
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;
- 假设
blah_t中字段大小的总和为18字节,但sizeof(blah_t)由于填充而为20。 -
myvar是静态的,因此初始化为零。
问题:
- 对于静态变量,填充字节 19 和 20 是否保证为 0?
如果没有,我需要为结构的任何
memcmp执行memset(&myvar, 0, sizeof(blah_t))才能有效——即使对于静态变量也是如此。 -
calloc(1, sizeof(blah_t))呢?字节 19 和 20 是否保证为零? 我相信是这样的。
【问题讨论】: