使用'sizeof(union.variable)'获取意外结果 - >目标C.

时间:2011-05-19 03:39:57

标签: objective-c

我收到了以下代码的意外结果。

union
{
    int aBuf[RMH_MAX_UNENCODED_LENGTH+sizeof(MSG_INFO)]; //4070+68=4138
}sUnion;
NSLog(@"%d",sizeof(sUnion.aBuf));//printing as 16552 and not 4138

1 个答案:

答案 0 :(得分:1)

这是此代码的正确输出。您的联合包含4138 int种类型的数组。如果您运行NSLog(@"%d",sizeof(int));,则输出为4。 4 * 4138 = 16552,因此4138 int s的数组长度为16552个字节。