首页 > 其他分享 >40. 共用体(联合体)

40. 共用体(联合体)

时间:2024-09-02 14:54:50浏览次数:6  
标签:tmp union 成员 联合体 40 地址 printf 共用


  • 联合union是一个能在同一个存储空间存储不同类型数据的类型;
  • 联合体所占的内存长度等于其最长成员的长度倍数,也有叫做共用体;
  • 同一内存段可以用来存放几种不同类型的成员,但每一瞬时只有一种起作用;
  • 共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员的值会被覆盖;
  • 共用体变量的地址和它的各成员的地址都是同一地址
#include <stdio.h>

// 共用体也叫联合体
union Test
{
    unsigned char a;
    unsigned int b;
    unsigned short c;
}

int main()
{
    // 定义共用体变量
    union Test tmp;
    
    // 1. 所有成员的首地址是一样的
    printf("%p, %p, %p\n", &(tmp.a), &(tmp.b), &(tmp.c));
    
    //2、共用体大小为最大成员类型的大小
    printf("%lu\n", sizeof(union Test));
    
    // 3、一个成员赋值,会影响另外的成员
    
    //左边是高位,右边是低位
	//低位放低地址,高位放高地址
	tmp.b = 0x44332211;
	
    printf("%x\n", tmp.a); //11
	printf("%x\n", tmp.c); //2211

	tmp.a = 0x00;
	printf("short: %x\n", tmp.c); //2200
	printf("int: %x\n", tmp.b); //44332200

	return 0;

    
}


标签:tmp,union,成员,联合体,40,地址,printf,共用
From: https://blog.51cto.com/zaishu/11898127

相关文章

  • RHEL8.9中anywhere报错error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key
    本文写于2024年9月2日,维护有效期两年.先说解决方法,进入anywhere的keys目录,即/usr/local/lib/node_modules/anywhere/keys后,备份后生成rsa:2048位的新证书. 最近学习vite+vue,跟着这个文档做的https://segmentfault.com/a/1190000041324864可是在进入dist输出目录后,运......
  • 20240905_000339 mysql 存储过程 用户自定义变量
    自定义变量的特点一个@符号定义自定变量打印自定变量另一种定义方式查询赋值......
  • 20240905_010339 mysql 存储过程 局部变量
    ......
  • JSP建筑材料管理系统s0407程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、项目背景与意义随着建筑行业的......
  • 0基础学习Python路径(40)operator模块
    operator模块operator模块提供了一套与Python的内置运算符对应的高效率函数。函数的种类函数包含的种类有:对象的比较运算、逻辑运算、数学运算和序列运算比较运算运算函数语法小于lt(a,b)a<b小于等于le(a,b)a<=b大于gt(a,b)a>b大于等于ge(a,b)a>=b等于eq(......
  • AT32F403A通用定时器03
    上期:AT32F403A通用定时器02https://blog.csdn.net/weixin_64557865/article/details/140933118?spm=1001.2014.3001.5501目录一、输出部分1.PWM模式A2.PWM模式B3.强制输出模式4.输出比较模式5.单周期模式6.快速输出模式二、案例1.TMR联合DMA(1)功能(2)配置介绍步......
  • zdppy+vue3+onlyoffice文档管理系统实战 20240901 上课笔记 基于验证码登录功能基本完
    遗留的问题1、点击切换验证码2、1分钟后自动切换验证码点击切换验证码实现步骤:1、点击事件2、调用验证码接口3、更新验证码的值点击事件给图片添加点击事件:<img:src="'data:image/png;base64,'+captchaImg"style="width:100%;height:50px;margin-top:10......
  • 20240901
    T1LuoguP4801饥饿的狐狸最大值考虑在两个极端之间反复横跳即可。每次跳的时候判一下先喝水是否更优。从最大和最小开始跳都要试一下。最小值随便分讨一下即可。别漏情况了。代码#include<iostream>#include<algorithm>#defineintlonglongusingnamespacestd;i......
  • 戴尔xps8940机箱只需要两百块,可否让垃圾佬的主机B格提升一个Level
    戴尔XPS8940机箱只需要两百块,可否让垃圾佬的主机B格提升一个Level戴尔xps8940的机箱只需要200块,看到这个价格之后,体内垃圾佬的基因就被激发了出来,你要知道XPS可是戴尔高端的代名词,那如果我把自己的设备装到这款机箱里面,然后把机箱放在桌面显眼的位置,岂不是吊炸天了?大家......
  • 20240908_030339 编程剪辑 读取音频对像获得音频时长
    需求有一个目录里存放了多个音频文件我们要获取这些音频文件的相关信息编写一个方法接收音频文件的目录返回音频信息列表示例......