any_t
是任何類型(int
,struct something
,...)。C結構:沒有填充的連續字段?
考慮這樣的結構:
struct my_struct {
any_t val,
any_t array[10]
}
如果我定義一個變量v
:
struct my_struct v;
是可以安全使用&v.val
爲11個any_t
項的數組?
any_t *p = &v.val;
f(p[0]);
f(p[5]);
f(p[10]);
它是保證沒有填充將val
和array
之間增加?
你可以使用#pragma pack(1)來保證成員之間沒有空格 – Kevin
http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the值得閱讀的每個成員的大小的總和。 – yeyo