C语言共用体大小

  • 格式:pdf
  • 大小:80.17 KB
  • 文档页数:1

C 语言共用体用体大小的问题和文章,我看了一下结果发现有很多矛盾, 比如共用体大小为最长的那个成员大小,可是答案是围绕结构体的大小计算的。 我个人总结了一下 C 语言共用体大小的计算方法:
共用体的大小为最长的那个成员的大小而最长的成员所占的字节数必须是其他成员 的整数倍,假如不够则补齐。 例: #include<stdio.h> union book { int num; char name[9]; double price; char sell; }; int main() { union book mybook; int size=sizeof(mybook); printf(“%d”,size); return 0; } 上面输出是 16; 为什么是 16 啊,这我们就要运用上面的那句话了,共用体的大小为最长的那个成员的大 小:char name[9]=9 字节,而最长的成员所占的字节数必须是其他成员的整数倍,假如不够则 补齐。9 必须是 4,8,1 的整数倍,8 的整数倍是 16,16 也是 4 的整数倍还是 1 的整数倍,所以 9 要在加 7 个字节=16 字节。 这句话只针对 C 语言不针对 C++