union内嵌struct用法
|
// 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用法的更多相关文章
- 转: __asm__ __volatile__内嵌汇编用法简述
from: http://www.embedu.org/Column/Column28.htm __asm__ __volatile__内嵌汇编用法简述 作者:刘老师,华清远见嵌入式学院高级讲师,AR ...
- cpp 内嵌函数(lambda,struct)
auto testFun = [this](int t)->void{ } []()->反回值{ } []内传入函数运行环境所用变量 ()内传入变量 捕捉块 lambda表达式的方括号部分 ...
- 匿名字段 内嵌结构体 interface作为struct field 匿名接口
interface作为struct field,谈谈golang结构体中的匿名接口 - Go语言中文网 - Golang中文社区 https://studygolang.com/articles/19 ...
- 内嵌tomcat最简单用法
maven项目引入内嵌tomcat依赖 <dependency> <groupId>org.apache.tomcat.embed</groupId> <ar ...
- 【原创】X86_64汇编、寄存器、内嵌汇编
整理的X86_64/X86汇编.寄存器.C内嵌汇编笔记,主要用于查阅使用. 目录 一.汇编语言 二.指令 数据传输指令 栈操作指令 push pop 运算指令 位操作 比较操作指令 标志寄存器 流控制 ...
- Beennan的内嵌汇编指导(译)Brennan's Guide to Inline Assembly
注:写在前面,这是一篇翻译文章,本人的英文水平很有限,但内嵌汇编是学习操作系统不可少的知识,本人也常去查看这方面的内容,本文是在做mit的jos实验中的一篇关于内嵌汇编的介绍.关于常用的内嵌汇编(AT ...
- Makefile---make内嵌函数及make命令显示 (九)
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 这一节我们讲一下make的函数,在之前的章节已经讲到了几个函数:wildcard.patsubs ...
- 《Programming WPF》翻译 第3章 3.内嵌控件
原文:<Programming WPF>翻译 第3章 3.内嵌控件 WPF提供了一系列内嵌控件.其中大多数符合标准的你已经熟悉的Windows控件类型.注意到没有一个是包装在旧的Win32 ...
- [转]struct 用法深入探索
struct用法深入探索 作者: Cloudward 1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估.因为一个大型 ...
随机推荐
- 802.1X基础
这是一个认证规范.使用EAPOL协议在客户端与认证端交互. EAPOL协议:Extensible Authentication Protocol over LAN. 假设三个实体: 客户端:PC 认证 ...
- react.js语法为了更好的兼容可以选以下这种方法配置即可
首先下一个sublime text3 的编辑器: 支持大家使用正版,不过我是为了方便才所以这版本而已... 地址: http://sublimetext.iaixue.com/forum.php?mo ...
- 【转】lower_case_table_names=1 让MySQL不区分大小写
lower_case_table_names=1 让MySQL不区分大小写! 此前有款网络游戏的数据库是采用MySQL.操作系统是CentOS.部分服务器的操作系统又是Windows. 出现了一个小毛 ...
- Git/GitHub 初用体验与总结
Git,一个神奇而又陌生的东西,居然到现在才去了解它,就像有一位仁兄说的,现在不会用Git真的都不好意思说自己搞IT的. 简单的讲,这Git是目前最先进的分布式版本控制系统,和他相对应的就是众所周知的 ...
- Qt : QProcess
QProcess 类用来启动另外的一个出现并与他们联系. 开始一个进程,通过传递你想要运行程序的名称和命令行参数作为参数给start()函数,来开始一个进程.参数作为独立的字符串来提供. QProce ...
- lua定义一个简单的类
classA.lua: classA = { a = , b = , --__index = classA; }; classA.__index = classA; function classA:n ...
- Linux下运行Jmeter测试所遇问题汇总
一.安装及启动Jmeter 本文原创,专为光荣之路公众号所有,欢迎转发,但转发请务必写出处! 0.下载及安装 下载地址及Linux命令 wget http://mirrors.cnnic.cn/a ...
- linux的mount(挂载)命令详解
本文介绍mount命令的用法,以及技巧光盘镜像文件.移动硬盘及U盘的方法. 挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用 ...
- 6. Samba服务和防火墙配置笔记
Samba文件服务器 (一)简介 内网文件服务器 windows-windows 文件共享服务 网络邻居linux-linux NFS windows-linux Samba (二)端口 smbd: ...
- centos搭建属于自己wordpress网站
1.在centos7中安装好mysql5.7.16.httpd.php.php-mysql工具 这里的mysql可以用yum一键安装,他可以自己解决依赖问题 [root@localhost ~]# y ...