结构定义如下
typedef struct Sample
{
int test;
char strtest;
} Sample;
Run Code Online (Sandbox Code Playgroud)
在Main Function中,我将Sizeof称为结构.
sizeof(struct Sample)
Run Code Online (Sandbox Code Playgroud)
我听说sizeof在结构上的返回值可能不正确.如果是这种情况,我该怎么做才能获得正确的价值?
kar*_*hik 22
它确实返回了一个可靠的值 - 并不总是你期望的价值.
在Sample结构中,假设一个1字节的char和4字节的int,但是你没有得到"5"的结果.
因为结构是填充的,所以元素从它们的自然边界开始.你更有可能得到"8"的结果.
Wiki很好地解释了这一点:http://en.wikipedia.org/wiki/Sizeof - 位于底部附近的"Structure Padding".