【每日一C之七】union共同体及判断系统大小端

每日一C之union共同体

       每天一个C语言贝壳厚积薄发积跬步以致千里

 今日贝壳:C语言union共同体的空间存储用法。union共同体用法:
                       union 共同体名称
                      {
                              数据类型 成员数据;
                              数据类型 成员数据;
                              ......
                       };
union Myunion      //定义共用体Myunion
{
    int i;         //int数据成员   
    char ch        //char数据成员
};
                空间存储:union共同体所有数据成员是共享一段内存,后写入的成员数据将覆盖之前的成员数据,成员数据都有相同的首地址,这是nuion最大的存储特征。union对内存的利用达到不可思议的地步,但只在很特殊的条件下才会使用。union的大小为最大数据成员的大小,上示例Myunion占4个字节。
          判断系统大小端

 union的成员数据共用内存,并且首地址都是低地址首字节。int i=1时:
           大端存储:1存放在最高地址。
           小端存储:1存放在最低地址。
            当读取char ch时,是最低地址首字节,大小端存储会显示不同的值,可以轻松判断系统大小端。
#include
    
    
     
     
union Myunion
{
	int i;
	char ch;
}My;                     //定义union共同体my
int main(){
	My.i=1;              //初始化i
	if(My.ch==1)         //根据ch的值判断系统大小端
	{
	    printf("系统为小端存储!\n");
	}
	else
	{
	    printf("系统为大端存储!\n");	
	}
	return 0;
}

    
    


                      Have a nice day !
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值