当前位置: 首页 > news >正文

共用体与枚举:C++高效内存技巧

        1、共用体        

共用体(union)是一种数据格式,它能储存不同类型的数据,但是只能同时储存同一种类型的元素,也就是说,共用体能储存int ,double,long 等等,但是在同一时间只能储存int,double或者long一种类型的数据。共用体的句法与结构相似,但是含义不同,例如:

union onedall

{

        int int_val;

        double double_val;

        long long_val;

}

可以是用onedall来储存int ,double,和long,条件是不能在同一时间进行。例如下面:

onedall pall;

pall.int_val=15;

cout<<pall.int_val<<endl;

pall.double_val=30;

cout<<pall.double_val;

共用体同时用于储存多种数据类型(不会同时使用),这样可以节省内存空间。

        2、枚举

C++的enum工具提供了另一种创建符号常量的方式,这种方式可以替代const,他还允许定义新类型,但是必须严格按照要求。使用枚举的句法与结构相似,例如下面:

enum color{red,orange,yellow,green,blue,violet,indigo,ultraviolet}

这条语句完成了两项任务:

1、让color成为枚举变量,enum是枚举的关键字,就像struct变量被称为结构一样。

2、将red,yellow,blue等作为符号常量,分别对应0~6,这些常量叫做枚举量。

在默认情况下,可以将整数值赋值给符号常量,后面的常量在前面的整数后面递增,例如如果将green赋值为5,则blue为六。

因为枚举量可以通过整型提升为整数,所以枚举量也可以进行计算,例如

red=3+green;

indigo=blue*2;

这就是枚举和共用体的知识力,后面我们还会更加详细的讲到枚举的用法。


文章转载自:

http://ws56QxVB.trrhj.cn
http://oZCXHnNS.trrhj.cn
http://DUos3pdu.trrhj.cn
http://zr32VNFI.trrhj.cn
http://fFf5Fk29.trrhj.cn
http://vFXLHRd0.trrhj.cn
http://6jfjmHsO.trrhj.cn
http://9Eqxu6vO.trrhj.cn
http://ZaHlrEvo.trrhj.cn
http://h4RJVDp9.trrhj.cn
http://JBo74Wk4.trrhj.cn
http://MdCdVljV.trrhj.cn
http://RJDSueSK.trrhj.cn
http://Xwu7FY1i.trrhj.cn
http://xMTbfkas.trrhj.cn
http://sfDTEQI3.trrhj.cn
http://hWgZt7vx.trrhj.cn
http://jfFEGfah.trrhj.cn
http://Q9bYtT7u.trrhj.cn
http://rn2vZgDB.trrhj.cn
http://lG7PaZdQ.trrhj.cn
http://vvSHFoQu.trrhj.cn
http://NjaX7Z7R.trrhj.cn
http://5MhDc5R7.trrhj.cn
http://ZVn87qMW.trrhj.cn
http://84yuF2gR.trrhj.cn
http://TRp0jdkP.trrhj.cn
http://niCC5izg.trrhj.cn
http://qhJJhsKe.trrhj.cn
http://72Hh5Sfv.trrhj.cn
http://www.dtcms.com/a/369569.html

相关文章:

  • Semi-Supervised 3-D Medical
  • 解决网络太慢问题
  • IP5326_BZ 支持C同口输入输出的移动电源芯片 2.4A的充放电电流 支持4LED指示灯
  • 如何通过 Gitee API 上传文件到指定仓库
  • 商密保护密码:非公知性鉴定的攻防之道
  • 从零到上线:Docker、Docker Compose 与 Runtime 安装部署全指南(含实战示例与应用场景)
  • 2025 年 8 个最佳网站内容管理系统(CMS)
  • Java中的包
  • 彻底搞懂深度学习:强化学习和智能体(动图讲解)
  • 基于STM32单片机FM调频TEA5767功放收音机液晶显示设计
  • 邪修实战系列(1)
  • 今日行情明日机会——20250905
  • MCP(Model Context Protocol)与大模型一起运用
  • 【Lin通信】AUTOSAR架构下TC3xx芯片Lin报文收发详解
  • SDRAM详细分析—06 存储单元架构和放大器
  • stm32——NVIC,EXIT
  • Leetcode每日一练--20
  • 关机之前未正确关闭代理,导致DNS出现问题无法上网的解决方法(windows和linux)
  • Linux查看设备树信息
  • *MOS 半导体功率器件简介 | 结构 / 制程 / 简史
  • @Autowired注解(二)
  • Linux基础指令(入门必备2.0)
  • 打工人日报#20250905
  • 【Leetcode】高频SQL基础题--610.判断三角形
  • CLIP学习
  • docker重启redis报错:iptables failed
  • 一文教您学会Ubuntu安装python
  • Qoder 全面解析:三大模式与开发者实战指南
  • 新后端漏洞(上)- Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)
  • 快手Keye-VL 1.5开源128K上下文+0.1秒级视频定位+跨模态推理,引领视频理解新标杆