我收到了以下代码的意外结果。
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
答案 0 :(得分:1)
这是此代码的正确输出。您的联合包含4138 int
种类型的数组。如果您运行NSLog(@"%d",sizeof(int));
,则输出为4
。 4 * 4138 = 16552,因此4138 int
s的数组长度为16552个字节。