union内嵌struct用法 您所在的位置:网站首页 union定义的是什么 union内嵌struct用法

union内嵌struct用法

2024-01-18 15:08| 来源: 网络整理| 查看: 265

众所周知,union为联合体,struct为结构体。下面根据实例谈谈用法

#include #include void main() { union{ /*定义一个联合*/ char i[6]; struct{ /*在联合中定义一个结构*/ char first; char second; char third; char fourth; unsigned short five; }half; }number; strcpy(number.i,"abcdA"); printf("%c%c/n",number.half.first, number.half.second); printf("%c%c%d/n",number.half.third, number.half.fourth,number.half.five); }

union中各个变量是共用内存空间。上例中,char数组和结构体共用内存空间。正如程序输出结果

ab

cd65

char数组赋值,结构体中的变量就会按顺序获得数组中的值。

main() { union{ /*定义一个联合*/ int i; struct{ /*在联合中定义一个结构*/ char first; char second; }half; }number; number.i=0x4241; /*联合成员赋值*/ printf("%c%c/n", number.half.first, mumber.half.second); number.half.first='a'; /*联合中结构成员赋值*/ number.half.second='b'; printf("%x/n", number.i); getch(); }

输出结果为:       AB       6261      从上例结果可以看出: 当给i赋值后, 其低八位也就是first和second的值;  当给first和second赋字符后, 这两个字符的ASCII码也将作为i 的低八位和高八  位。

参考文献

http://blog.ednchina.com/likee/20666/message.aspx



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有