[导读]一、C语言的共用体union共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。什么意思呢,就是在同一块内存存储可以定义多个数据类型,但是在使用的时候,只有一个变量有效。这里就有一个问题,变量有大有小呀,对的,所以这个时候共用体的空间为内部变量最大占用空间的值。...
一、C语言的共用体union
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。
什么意思呢,就是在同一块内存存储可以定义多个数据类型,但是在使用的时候,只有一个变量有效。
这里就有一个问题,变量有大有小呀,对的,所以这个时候共用体的空间为内部变量最大占用空间的值。
如此这般,共用体就可以通过共享存储空间,来避免当前没有被使用的变量所造成的存储空间的浪费。
共用体的成员可以使用任何数据类型,但是一个共用体所占用的存储空间的字节总数,必须保证至少足以能够容纳其占用空间字节数最大的成员。并且共用体每次只允许访问一个成员,也就是一种数据类型,确保按照正确的数据类型来访问共用体中的数据,就是你的责任了。
先看看union的格式:union [tag]
{
member definition;
member definition;
...
member definition;
} [variables];
其中:
- union为类型变量;
- tag为共用体的标记;
- member definition为变量的定义;
举个例子:union test
{
int i;
float f;
double d;
char str[20];
} data;
通过这个例子可以看到,这个结构体的大小是多少呢?可以通过程序来确认一下。OK,这次我们来聊聊结构体。任务来了,我想让你给学生建立一个数据库,该怎么来做。这个学生包含的信息如下:- ID:也就是学号,唯一区别码,用整型表示
- Name:姓名,用字符串表示
- Age:年龄,用整型表示
- Sex:性别,用字符串表示
按照目前学过的知识我们的代码如下,比如先来一个李雷同学的吧:#include
#include
union test
{
int i;
float f;
double d;
char str[20];
};
int main( )
{
union test data;
printf( "data size : %d\n", sizeof(data));
return 0;
}
END来源:十月天文版权归原作者所有,如有侵权,请联系删除。▍
扫描二维码,关注更多精彩内容
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...
关键字:
嵌入式开发
C语言
Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。
关键字:
Java语言
C语言
编程
嵌入式系统是一种专门设计用于特定应用领域的计算机系统,它通常由硬件和软件组成,并且被嵌入到其他设备或系统中,以实现特定的功能。在嵌入式系统的开发过程中,选择适合的编程语言是至关重要的。C语言是一种被广泛应用于嵌入式系统开...
关键字:
嵌入式
计算机
C语言
C语言是一种广泛应用于软件开发领域的编程语言。它是由贝尔实验室的Dennis Ritchie在20世纪70年代初创建的,旨在为UNIX操作系统的开发提供一种高级编程语言。C语言具有简洁、高效、可移植性强等特点,因此成为了...
关键字:
C语言
操作系统
应用程序
嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...
关键字:
嵌入式系统
C语言
编程
在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。
关键字:
嵌入式系统
C语言
编程
C语言编译器是一种用于将C语言源代码转换为可执行程序的软件工具。它的主要功能是将C语言代码翻译成机器语言,以便计算机能够理解和执行。C语言编译器通常包括预处理器、编译器、汇编器和链接器等多个组件,它们协同工作以完成编译过...
关键字:
C语言
编译器
Microsoft Visual C++
Matlab和C语言的区别是:1、用途不同;2、语法不同;3、运行速度不同;4、可移植性不同;5、代码管理不同。Matlab是一种数值计算和科学计算工具
关键字:
matlab语言
C语言
系统编程
单片机是一种集成电路,它包含了中央处理器、存储器、输入输出接口和时钟等基本部件。单片机广泛应用于各种电子设备中,如家用电器、汽车电子、医疗设备等。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用...
关键字:
单片机编程
单片机
C语言
一直以来,嵌入式都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来嵌入式的相关介绍,详细内容请看下文。
关键字:
嵌入式
C语言
现在市面上的DSP产品很多,定点DSP有200多种,浮点DSP有100多种。主要生产:TI 公司、AD公司、Lucent、Motorola和LSI Logic公司。
关键字:
DSP芯片
C语言
芯片选型
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级...
关键字:
C语言
单片机
很多单片机初学者问我的第一句话都是:怎样才能学好单片机?今天,我就结合我自己是如何开始学习单片机的,如何开始上手,又如何开始熟练等话题与大家分享。
关键字:
单片机
C语言
Matlab被禁,不代表开源的Python和Julia就可以随便用,甚至祖宗辈的C语言也不一定安全。就像Arm新技术被禁止华为使用,不代表华为就能自由使用所谓开源的RISC-V,开源技术的主导者仍然是美国,而且RISC-...
关键字:
Matlab
C语言
RISC-V
半个月前这位同学找到我,他当时准备参加面试,就和我聊了很多,总体感觉这位同学基础还是不错。我那时候也就顺便给他找了一些C语言、Linux等等笔试题,后面也教他稍微修改过几次简历。总体来说,这位同学能有现在的三个比较好的o...
关键字:
面试
C语言
笔试题
其实在 c++语言里面const修饰的才算是一个真正的常量,在 c 语言中 const 可以说是个“冒牌货”。为什么会这样?其实是 c++ 编译器对 const 进行了加强,当 c++ 编译器遇到常量声明时,不会像 c...
关键字:
c++
C语言
const
(全球TMT2022年11月3日讯)国家电网的省网开始采用浪潮分布式存储AS13000系列构建机巡数据存储平台,通过标准的S3协议与云平台机巡业务系统进行对接,提供海量存储空间并实现数据交互,为省检修中心及各个地市构建...
关键字:
分布式
电路
云平台
存储空间
昨天群友发文询问,为什么C语言里bool似乎占用4Byte,给bool赋值后,它后面的3个字节 内容也被修改了,并且她还强调代码没有经过编译器优化(-O0是关闭优化的意思)。
关键字:
C语言
代码
编译器优化
今天分享一个C语言宏定义小技巧,从语法上来看比较简单,不过一旦真正领悟到其精妙之处不仅可以简化代码、还能提高代码的可扩展性。X-MACRO宏技术的核心在于灵活的应用#define与#undef,对于玩C语言的伙计#def...
关键字:
C语言
宏技术
工程师
最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。
关键字:
APP
嵌入式
C语言