栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

探寻typedef union {long i; int k[5]; char c;} DATE;在64位Linux系统的字节数到底是多少,

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

探寻typedef union {long i; int k[5]; char c;} DATE;在64位Linux系统的字节数到底是多少,

昨天回头看之前的笔记时发现typedef union {long i; int k[5]; char c;} DATE;得出的结果跟网上的有点出入,在网上搜到的答案是整个字节数大小是20,但是我自己运行得出的结论却不是这个数,而是24。大家看看下面的运行结果:

 大家可以看出,运行得出的结论是24,而不是20,于是我便开始了测试:

测试过程是将typedef union {long i; int k[5]; char c;} DATE;里面的数组长度5改成6,即typedef union {long i; int k[6]; char c;} DATE;,但是得出的结果还是不变,结果如下:

 可以看出,字节空间大小不变,那么到底是什么因素影响这个结果呢?

于是我又开始了把数字转换了几次分别用3和4又试了一遍。结果得出的结论都是16。

后我又把数字变小,用7和8试了一遍,得出的结论都是32,

 于是我猜测应该是long类型的变量的问题,他在64位操作系统中占8个位,其他的要跟最大的进行对齐。

不知我的想法对不对,希望大佬们多多指点!

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号