C语言union学习总结

联合和结构体的区别:
结构体变量:各个成员变量顺序存储,每个成员都有独立的内存空间,结构体变量占用的内存是各个成员变量内存之和;
联合变量:所有的成员共享一片内存,联合变量分配的内存大小为其成员中最大的成员变量的内存。

联合的定义:

union data {char n;float f;
}
union data u1 = {3};//此时只有成员变量n被初始化;

对union的某个成员赋值,会覆盖其他成员的值。
union变量的存放顺序是从低地址开始存放。因此可以用union判断CPU的大小端

bool IsLittleEndian() {union w {int a;//4个字节char b;//1个字节};union w c;c.a = 1;bool isLittleEndian = false;isLittleEndian = c.b == 1 ? true : false;return isLittleEndian;
}

或者另外一种方式

#define ENDIANNESS ((char) endian_test.l)
static union {char c[2];char l;
}endian_test = {'l','b'};

学艺不精,如有错误,欢迎指正,谢谢。

参考资料:C语言union(联合体、共用体)及应用

C语言union学习总结相关推荐

  1. C语言再学习--关键字

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/53021879 C语言一共有32个关键字,如下表所示: 关键字 说明 auto ...

  2. C语言再学习 -- 结构和其他数据形式

    一.结构体 结构体可以用来创建新的数据类型,这种数据类型可以把多个其他类型合并成一个整体,采用结构体声明的变量叫做结构变量,结构体需要先声明然后才能使用,声明结构体需要使用struct关键字,结构体声 ...

  3. C语言再学习 -- 关键字sizeof与strlen

    sizeof  一.简单介绍 sizeof 是 C 语言的一种单目操作符,如 C 语言的其他操作符++.--等.它并不是函数.C 规定 sizeof 返回 sieze_t 类型的值.这是一个无符号整数 ...

  4. R语言可视化学习笔记之ggridges包绘制山峦图

    作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...

  5. c语言用户自己建立数据类型,C语言程序设计学习笔记--用户建立数据类型

    C语言程序设计学习笔记--用户建立数据类型. 9.1定义和使用结构体变量 1.定义:C语言允许用户自己建立不同类型数据组合成的组合型数据类型就是结构体 2.形式: struct 结构体名 { 成员表列 ...

  6. MySQL02:DQL语言的学习

    DQL语言的学习 一.基础查询 语法 select 查询列表 from 表名; 类似于:System.out.println(打印东西); 特点 1.查询列表可以是:表中的字段.常量值.表达式.函数 ...

  7. 《C语言基础学习笔记》—— 黑马程序员 <Part1-4>

    <C语言基础学习笔记 Part1-4> Part 1 基础介绍 1. 第一个C语言程序:HelloWorld 1.1 编写C语言代码:hello.c 1.2代码分析 1)include 头 ...

  8. c语言union字节相同大小不同,C语言的struct/union字节对齐

    C语言的一大优势就是对内存空间的控制,当然,一般情况下对于开发人员来说都是透明的.看一个始终困扰初学者的问题:字节对齐! 先看四个重要的基本概念: 1.数据类型自身的对齐值: 对于char型数据,其自 ...

  9. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

最新文章

  1. jupyter读取图片并展示的两种方法
  2. jenkins 配置使用
  3. 微服务架构如何保障双11狂欢下的99.99%高可用
  4. 《系统集成项目管理工程师》必背100个知识点-87系统文档验收
  5. k8s kustomize 简明教程:安装 kustomization.yml常用字段解读
  6. 第 3 章 共享程序集和强命名程序集
  7. 2011年三八妇女节搜索引擎LOGO设计欣赏
  8. 显微镜下的大明内容_平凡故事展现炮火下人性光辉,李少红《解放·终局营救》创作全解...
  9. 60-60-020-API-Kafka Java consumer动态修改topic订阅
  10. android播放视频功能,android surfaceView实现播放视频功能
  11. C# string转Intptr Intptr转string
  12. Windows 域之 LDAP与AD
  13. matlab 中输入log就是ln吗?(ln就是log以e为底的对数)
  14. 网吧上网小心绝地求生账号被盗
  15. msgbox php,VBA消息框(MsgBox)
  16. 大厂调整考勤,996将成为过去式吗?
  17. Excel每页都打印表头
  18. 2022-2027年中国农村小额贷款行业市场调研及未来发展趋势预测报告
  19. T-SQL 学习之路之数据库完整性之域完整性
  20. 开关电源001--时间常数

热门文章

  1. 俄罗斯的金融犯罪活动是如何运作的
  2. mysql 读写分离软件_MySQL Atlas 读写分离软件介绍
  3. Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java9 的新特性
  4. 二级分类 php,PHP二级分类查询显示方法
  5. 不适合做软件测试的5类人,你现在看还来得及!
  6. 用什么linux命令中删除提交的作业,disown – 从当前的shell中移除作业。 - Linux 命令大全...
  7. Linux系统中如何修改用户名
  8. linux tap模式乱序,部署旁路(Tap)模式
  9. js常见的几个面试题?
  10. 微信小程序是什么?有哪些特点?