设有说明: union data { int i; struct { int x;chary; 1+1=2怎么用C语言编程

\u7eafC\u8bed\u8a00\u7f51\u7edc\u7f16\u7a0b

\u90a3\u4e2a\u662fVC\u4e2d\u7684\u5e93\uff0c\u4e5f\u4f1a\u7528\u5230WINDOWS SDK\u4e2d\u7684\u5e93\uff0c\uff0c\uff0c\uff0c\uff0c\uff0c\uff0c\uff0c\u5355\u7eaf\u4f7f\u7528C\u8bed\u8a00\u7684\uff0c\u505a\u4e0d\u5230\u7684\u3002


~~~~~~~~~~~~~~~~~

c\u7a0b\u5e8f\u4ee3\u7801\u5185\u5bb9\u5982\u4e0b\uff1a
# include
main()
{
int a,b,c;
printf("\u8bf7\u8f93\u5165\u4e24\u4e2a\u6574\u6570,\u4e2d\u95f4\u4ee5\u7a7a\u683c\u9694\u5f00:\n");
scanf("%d%d",&a,&b);
c=a+b;
printf("\u8fd9\u4e24\u4e2a\u6570\u7684\u548c\u662f:a+b=%d\n",c);
}
\u7136\u540e\u6309\u63d0\u793a\u8f93\u5165\u201c1 1\u201d\u5c31\u4f1a\u663e\u793a\uff1a\u201ca+b=2\u201d
\u7f16\u7a0b\u5b8c\u6210\uff01

首先得清楚:
union所占的内存,是其中的元素中占内存最大的元素的字节数。(因为union内不同元素之间共享同一块内存)
struct 所占内存是所有元素占内存之和,并且要考虑内存对齐。

struct 是 4 + 1; sizeof(int) + sizeof(char) 然后考虑内存对齐,struct所占内存得是int类型的整数倍,所以是8字节。

union中除了struct对象还有int,float对象,分别都是占4字节,所以union中占内存最多的是strcut s,占8字节,所以union就是占8字节

扩展阅读:终极电车动画片 ... boot设置硬盘为第一启动项 ... 在线翻译中文 ... 在线翻译英译汉 ... checking media presence ... 自动翻译器在线翻译 ... 免费在线翻译 ... onboard nic ipv4 ... 得到网页版 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网