`
ruilin521314
  • 浏览: 881436 次
文章分类
社区版块
存档分类
最新评论

C语言中Union类型的使用方法

 
阅读更多

使用C语言时,常常使用struct,对于union类型却几乎没有用过,只知道它是联合类型,各字段共享一块内存,实际应用中却不知道它的具体用途。

今天读《编程卓越之道》中看到有对其使用的简单介绍,记录在此:

首先摘录一下struct和union的重要区别:

struct为每个字段在不同的偏移处分配存储空间,而联合则将所有的字段重叠在内存中的相同偏移处。

联合类型的用途:

1、创建别名。别名是内存对象原名之外的其他名字。比如在程序中经常会用到将一个数据类型强制转换为另一个类型,这个操作可以使用联合来代替。

比如typedef union{

char c;

uint32 u;

}CharOfUnion v;

可以通过v.u来操作一个uint32类型的对象,当需要将uint32变量的低端字节看做一个字符的时候,只需要访问v.c就可以了。

实际应用中,大多数的协议结构定义中,都会使用union类型来定义。


2、使用联合来将较大的对象分解成组成这个对象的各个字节。

typedef union{

uint u;

char bytes[4];

}asBytes composite;

可以使用composite.bytes数组来访问composite.u字段的各个字节。

分享到:
评论

相关推荐

    C语言编程中的联合体union入门学习教程

    联合体(union)在C语言中是一个特殊的数据类型,能够存储不同类型的数据在同一个内存位置。可以定义一个联合体使用许多成员,但只有一个部件可以包含在任何时候给定的值。联合体会提供使用相同的存储器位置供多用途的...

    C++11中union的使用方法示例

    c++11中union除了继承c语言的数据共享内存之外,行为上越来越像一个类,比如成员默认是public类型。 在C++11以后,很多基础语法都进行了修正。其中 union 的行为向类对象进行了发展,在兼容原有语法定义的基础上进行...

    C语言中的所有关键字

    (1) char :声明字符型变量或函数 ...(10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)

    C语言编程宝典C语言编程宝典

    1.5 Turbo C 2.0集成开发环境的使用 1. 数据类型、变量和运算符 2. 数据类型 3. 关键字和标识符 4. 变量 5. 运算符 Turbo C 程序设计初步 1.1 输入输出函数及控制流程语句 1.2 文件的输入输出函数 1.3 ...

    C语言中联合体union的实例详解

    主要介绍了 C语言中联合体union的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下

    谭浩强C语言对应C语言课程PPT.zip

    1.文件的基本概念,C语言中的两种文件(识记) 2.文件的打开、关闭和文件结束测试,文件的读写,文件的定位(识记) 2.1文件操作函数 2.2 文件权限 七.算法与编程(综合应用) 1 使用Turbo C集成开发环境调试程序...

    数据结构 C语言 设计集合抽象数据类型

    Union(*S1,*S2) 初始条件:集合S1和S2存在。 操作结果:生成一个由S1和S2的并集构成的集合,返回到S1。 Intersection (*S1,*S2) 初始条件:集合S1和S2存在。 操作结果:生成一个...

    c语言入门教程.txt

    (一)、变量类型和表示方法 1.什么是变量?一句话,变量是存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字符等等,那么对应的变量就有整型变量、浮点型变量、字符型变量。变量还有其他的具体...

    C语言编程宝典(全)

    1.1Turbo C语言概述 1.2 C 语言的特点 1.3 Turbo C 概述 1.4 Turbo C 2.0的安装和启动 1.5 Turbo C 2.0集成开发环境的使用 1.数据类型、变量和运算符 2.数据类型 3.关键字和标识符 4.变量 5.运算符 输入输出...

    C语言简明教程(编辑成页)

    1.1Turbo C语言概述 1.2 C 语言的特点 1.3 Turbo C 概述 1.4 Turbo C 2.0的安装和启动 1.5 Turbo C 2.0集成开发环境的使用 1.数据类型、变量和运算符 2.数据类型 3.关键字和标识符 4.变量 5.运算符 输入输出函数...

    C语言复习题目

    单项选择题………………………第002页 ...B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

    C语言编程宝典之一,作者:王大刚

    一,基础篇 1.1Turbo C语言概述 1.2 C 语言的特点 1.3 Turbo C 概述 1.4 Turbo C 2.0的安装和启动 1.5 Turbo C 2.0集成开发环境的使用 1.数据类型、变量和运算符 2.数据类型 3.关键字和标识符 4.变量 5.运算符 ...

    C语言编程宝典教程,HTML网页版.rar

    在基础篇中主要讲到了以下内容:1.1Turbo C语言概述 1.2 C 语言的特点 1.3 Turbo C 概述 1.4 Turbo C 2.0的安装和启动 1.5 Turbo C 2.0集成开发环境的使用 1.数据类型、变量和运算符 2.数据类型 3.关键字和标识符 4...

    C语言编程宝典(chm版本)

    1.5 Turbo C 2.0集成开发环境的使用 1. 数据类型、变量和运算符 2. 数据类型 3. 关键字和标识符 4. 变量 5. 运算符 Turbo C 程序设计初步 1.1 输入输出函数及控制流程语句 1.2 文件的输入输出函数 1.3 ...

    c语言的语法大全.doc

    派生数据类型:array, struct, union, enum 等。 指针类型:例如 int*, char* 等。 2. 变量和常量 变量:声明并分配内存空间。 常量:使用 const 关键字声明,值不可改变。 3. 运算符 算术运算符:+, -, *,...

    初步剖析C语言编程中的结构体.doc

    C语言结构体,可谓是C强大...C语言中,结构体的声明、定义是用到关键字struct,就像联合体用到关键字union、枚举类型用到enum关键字一样,事实上,联合体、枚举类型的用法几乎是参照结构体来的。结构体的声明格式如下:

    C语言编程宝典.exe

    一,基础篇 1.1Turbo C语言概述 1.2 C 语言的特点 1.3 Turbo C 概述 1.4 Turbo C 2.0的安装和启动 1.5 Turbo C 2.0集成开发环境的使用 1.数据类型、变量和运算符 2.数据类型 3.关键字和标识符 4.变量 5.运算符 ...

    C语言、C++中的union用法总结

    别的先不说了,都工作这么长时间了,还回过头来总结union,确实有点过分,要是和大家说我一直从事于C++开发,还不懂union,大家可能还真的不信。我们每天都在总结那些看似高端的东西,什么设计模式(当然我也有总结...

    C语言 共用体(Union)详解及示例代码

    在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为: union 共用体名{  成员列表 }; 共用体有时也被称为联合或者联合体,这也是 Union 这个单词的本意。 结构体和共用体的...

Global site tag (gtag.js) - Google Analytics