C/C++ 共用体union的应用和struct不同

        共用体union是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。也就是说,结构体同时存储int、long和double,共用体只能春初int、long或double,共用体的语法与结构体相似,但含义不同。例如下面的声明:
            union DATA
            {
                int u_nData;
                long u_lData;
                double u_dData;
            };
    可以使用DATA变量存储ing、long、double,条件是哎不同的时间进行。因此,DATA有时候可以是int变量,而有时又可以是double变量。成员名称表示了变量的容量。由于共用体每次只能存储一个值,因此它必须又足够的空间来存储最大的成员,所以,共用体的长度为其最大成员的长度。共用体的用途之一是,当数据项使用两种或更多种格式(但不会同时使用)时,可节省空间。

示例源码:

// Len_union.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;struct DATA_STRUCT
{int u_nData;long u_lData;double u_dData;
};union DATA
{int u_nData;long u_lData;double u_dData;
};int main()
{cout << "sizeof(struct DATA_STRUCT)=" << sizeof(DATA_STRUCT) << endl;  // 返回的是共同体最大类型的长度cout << "sizeof(union DATA)="<< sizeof(DATA) << endl;  // 返回的是共同体最大类型的长度DATA data1;data1.u_nData = 100;cout << "data1.u_nData=" << data1.u_nData << endl;data1.u_lData = 200;cout << "data1.u_lData=" << data1.u_lData << endl;data1.u_dData = 300.33;	cout << "data1.u_dData=" << data1.u_dData << endl;}

执行结果:


    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于javaSpringbootmysql的小型超市商品展销系统01635-计算机毕业设计项目选题推荐(免费领源码)

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

【SpringCloud】-GateWay源码解析

GateWay系列 【SpringCloud】-GateWay网关 一、背景介绍 当一个请求来到 Spring Cloud Gateway 之后&#xff0c;会经过一系列的处理流程&#xff0c;其中涉及到路由的匹配、过滤器链的执行等步骤。今天我们来说说请求经过 Gateway 的主要执行流程和原理是什么吧 二、正文 …

【教3妹学编程-算法题】收集足够苹果的最小花园周长

3妹&#xff1a;“在小小的花园里面挖呀挖呀挖&#xff0c;种小小的种子开小小的花” 2哥 : 3妹也会唱这首儿歌呀&#xff0c; 这首儿歌在五一期间很火啊。 3妹&#xff1a;是呀&#xff0c; 小朋友们都喜欢唱&#xff0c;我这个200多个月的大朋友也喜欢唱&#xff0c;哈哈 2哥…

《面试专题-----经典高频面试题收集二》解锁 Java 面试的关键:深度解析常见Map高频经典面试题(第二篇)

经典面试题收集二 第四章&#xff08;Map&#xff09;1. 用过哪些Map实现2.说一下HashMap和HashTable的区别3. 介绍一下hashCode()和equals()的使用场景4. HashMap和TreeMap应该怎么选择&#xff0c;使用场景&#xff1f;5. Set和Map的关系6. 常见的Map排序规则是怎样的&#x…

仅操作一台设备,如何实现本地访问另一个相同网段的私网?

正文共&#xff1a;1034 字 8 图&#xff0c;预估阅读时间&#xff1a;4 分钟 书接上文&#xff08;地址重叠时&#xff0c;用户如何通过NAT访问对端IP网络&#xff1f;&#xff09;&#xff0c;我们已经通过两台设备的组合配置实现了通过IP地址进行访问。但一般场景中&#xf…

爬虫工作量由小到大的思维转变---<第二十三章 Scrapy开始很快,越来越慢(医病篇)>

诊断篇https://blog.csdn.net/m0_56758840/article/details/135170994?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170333243316800180644102%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id1703332433168001806441…

C/C++ 连接访问 MySQL数据库

前面我们已经讲述了MySQL的基础使用&#xff0c;现在我们来看一下如何使用语言来操作数据库。在实际开发中&#xff0c;语言连接MySQL是为了能够在编程语言中与MySQL数据库进行交互和操作。大部分情况我们都是通过语言连接MySQL&#xff0c;建立与MySQL数据库的连接&#xff0c…

原型模式(Prototype)

原型模式(Prototype Pattern)是一种创建型设计模式,允许对象在创建时通过复制一个已存在的对象(原型)来创建新对象,而不是通过传统的方式来创建。这个模式特别适用于创建复杂对象的情况,特别是当对象的创建过程比较昂贵或复杂时。 Java中实现原型模式通常涉及以下几个步…

【SassVue】仿网易云播放器动画

简介 仿网易云播放动画 效果图&#xff08;效果图&#xff09; 最终成品效果 动画组件 src/components/musicPlay.vue <template><div class"music-play"><div></div><div></div><div></div></div> </te…

【C#与Redis】--目录

1. 介绍 2. Redis 数据结构 3. Redis 命令 3.1 基本命令 3.2 字符串命令 3.3 哈希命令 3.4 列表命令 3.5 集合命令 3.6 有序集合命令 4. C# 操作 Redis 4.1 使用 Redis 库 4.2 连接 Redis 服务器 4.3 操作 Redis 数据结构 4.5 执行 Redis 命令 5. 高级主题 5.1 Redis 事…

CSS3多列

CSS3 的多列布局&#xff08;Multicolumn Layout&#xff09;允许你将文本分成多个列&#xff0c;使页面看起来更加美观。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" cont…

INFINI Gateway 如何防止大跨度查询

背景 业务每天生成一个日期后缀的索引&#xff0c;写入当日数据。 业务查询有时会查询好多天的数据&#xff0c;导致负载告警。 现在想对查询进行限制–只允许查询一天的数据&#xff08;不限定是哪天&#xff09;&#xff0c;如果想查询多天的数据就走申请。 技术分析 在每…

CogAgent:带 Agent 能力的视觉模型来了

之前我们分享过智谱AI新一代多模态大模型 CogVLM&#xff0c;该模型在不牺牲任何 NLP 任务性能的情况下&#xff0c;实现视觉语言特征的深度融合&#xff0c;其中 CogVLM-17B 在 14 个多模态数据集上取得最好或者第二名的成绩。 12月15日&#xff0c;基于 CogVLM&#xff0c;提…

Qt使用函数指针处理信号和槽函数重载

Qt使用函数指针处理信号和槽函数重载 1. 定义函数指针 void(Teacher::* teacherSignal)(QString) &Teacher::hungry; void(Student::* studentSlot)(QString) &Student::treat;这里定义了两个函数指针&#xff1a;teacherSignal 和 studentSlot。 teacherSignal 是…

AI 绘画StableDiffusionWebui图生图

介绍 stable-diffusion-webui AI绘画工具&#xff0c;本文介绍图生图&#xff0c;以一张图片做底图优化生成。 例如&#xff1a;上传一张真人照片&#xff0c;让AI把他改绘成动漫人物&#xff1b;上传画作线稿&#xff0c;让AI自动上色&#xff1b;上传一张黑白照&#xff0c…

并发踩坑:list共享变量的addAll

背景&#xff1a; 某业务报错了&#xff0c;提示&#xff1a;Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.util.ConcurrentModificationException 分析&#xff1a; 这是执行查询时报的 并发修改异常。大概逻辑…

BigQuery Clustered Table 简介 - 聚簇表

Clustered Table的定义 聚簇可以提高某些类型的查询&#xff08;例如&#xff0c;使用过滤条件子句的查询和聚合数据的查询&#xff09;的性能。当通过查询作业或加载作业将数据写入聚簇表时&#xff0c;BigQuery 会使用聚簇列中的值对这些数据进行排序。这些值用于将数据整理…

Springboot2.6以下版本对cookie的samesite设置的通用方法

通过安全扫描工具对spring技术栈开发的应用进行漏洞检查时&#xff0c;通常会扫描出关于cookie相关的漏洞&#xff0c;其中一个是: Cookie without SameSite attribute&#xff0c;对于其描述通常如下: When cookies lack the SameSite attribute, Web browsers may apply di…

web3风险投资公司之Electric Capital

文章目录 什么是 Electric CapitalElectric团队 Electric Capital 开发者报告参考 什么是 Electric Capital 官网&#xff1a;https://www.electriccapital.com/ 官方github&#xff1a;https://github.com/electric-capital Electric Capital 是一家投资于加密货币、区块链企…