// union内嵌struct用法

// 众所周知,union为联合体,struct为结构体。下面根据实例谈谈用法
 
#include <stdio.h>  
#include <string.h>  
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数组和结构体共用内存空间。正如程序输出结果
// char数组赋值,结构体中的变量就会按顺序获得数组中的值。
 
main()   
    {   
         union{                     
              int i;   
              struct{               
                   char first;   
                   char second;   
                   char third;   
                   char fourth;   
              }half;   
         }number;   
         number.i=0x44434241;           
         printf("%c%c%c%c\n", number.half.first,number.half.second,number.half.third, number.half.fourth);   
         number.half.first='a';     
         number.half.second='b';   
         number.half.third='c';   
         number.half.fourth='d';   
         printf("%x\n", number.i);   
    }  
// 输出结果为: 

// 从上例结果可以看出: 当给i赋值后, first,second,third,fourth也就相应被赋值; 
// 当给first,second,third,fourth赋字符后, 这四个字符的ASCII码也被赋值给i。

union内嵌struct用法的更多相关文章

  1. 转: __asm__ __volatile__内嵌汇编用法简述

    from: http://www.embedu.org/Column/Column28.htm __asm__ __volatile__内嵌汇编用法简述 作者:刘老师,华清远见嵌入式学院高级讲师,AR ...

  2. cpp 内嵌函数(lambda,struct)

    auto testFun = [this](int t)->void{ } []()->反回值{ } []内传入函数运行环境所用变量 ()内传入变量 捕捉块 lambda表达式的方括号部分 ...

  3. 匿名字段 内嵌结构体 interface作为struct field 匿名接口

    interface作为struct field,谈谈golang结构体中的匿名接口 - Go语言中文网 - Golang中文社区 https://studygolang.com/articles/19 ...

  4. 内嵌tomcat最简单用法

    maven项目引入内嵌tomcat依赖 <dependency> <groupId>org.apache.tomcat.embed</groupId> <ar ...

  5. 【原创】X86_64汇编、寄存器、内嵌汇编

    整理的X86_64/X86汇编.寄存器.C内嵌汇编笔记,主要用于查阅使用. 目录 一.汇编语言 二.指令 数据传输指令 栈操作指令 push pop 运算指令 位操作 比较操作指令 标志寄存器 流控制 ...

  6. Beennan的内嵌汇编指导(译)Brennan's Guide to Inline Assembly

    注:写在前面,这是一篇翻译文章,本人的英文水平很有限,但内嵌汇编是学习操作系统不可少的知识,本人也常去查看这方面的内容,本文是在做mit的jos实验中的一篇关于内嵌汇编的介绍.关于常用的内嵌汇编(AT ...

  7. Makefile---make内嵌函数及make命令显示 (九)

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 这一节我们讲一下make的函数,在之前的章节已经讲到了几个函数:wildcard.patsubs ...

  8. 《Programming WPF》翻译 第3章 3.内嵌控件

    原文:<Programming WPF>翻译 第3章 3.内嵌控件 WPF提供了一系列内嵌控件.其中大多数符合标准的你已经熟悉的Windows控件类型.注意到没有一个是包装在旧的Win32 ...

  9. [转]struct 用法深入探索

    struct用法深入探索 作者: Cloudward 1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估.因为一个大型 ...

随机推荐

  1. 中文乱码~Windows 7

    1.安装匹配的中文语言包 2.安装中文字体

  2. 介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市

    以用户为中心的时代,应用的界面外观变得越来越重要.然而,很多程序员都缺乏美术功底,要开发出界面美观的应用实属不易.Ext JS的出现,为广大程序员解决了这一难题.它有丰富多彩的界面和强大的功能,是开发 ...

  3. 通过正则表达式实现简单xml文件解析

    这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...

  4. 常用快捷键(WebStorm, Eclipse, Sublime)

    WebStorm 常用快捷键 Ctrl + / 单行注释// Ctrl + Shift + / 块注释/*…*/ Ctrl + D 复制行 Ctrl + Y 删除行 Ctrl + X 剪切(删除)行, ...

  5. <input type='file'/>把默认样式改成框框

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. Bug跟踪方法

     Bug跟踪函数调用方法 StackTraceElement mSte = new Exception().getStackTrace()[1]; Log.e("mmm", mSt ...

  7. php中echo(),print(),print_r()之间的区别

    echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)  print只能打印出简单类型变量的值(如int,string)  print_r可以打印出复 ...

  8. js 中实现页面跳转的方法(window.location和window.open的区别)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  9. 【PC端】jQuery+PHP实现浏览更多内容(jquery.more.js插件)

    参数说明: 'amount' : '10', //每次显示记录数 'address' : 'comments.php', //请求后台的地址 'format' : 'json', //数据传输格式 ' ...

  10. [Machine-Learning] 熟悉 Matlab 中的 map

    概述 map 的意思是映射,即将一个变量映射到另一个变量. 比如将一个字符串映射为一个数值,那个字符串就是map 的键值(key),数值就是map的数据(value). 由此可以把map理解为一个哈希 ...