c++ Union之妙用
union的作用基本是它里面的变量都用了同一块内存,跟起了别名一样,类型不一样的别名。
基本用法:
struct Union{union {float a;int b;};};Union u;u.a = 2.0f;std::cout << u.a << "," << u.b << std::endl;
常规用法,见结构体:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm> /* sort*/
#include <functional> /*std::greater<int>()*/
#include "game.h"struct Vector2 {float x, y;
};struct Vector4
{/*因使用union方法,故先注释掉*/// float x, y, z, w;//Vector2 GetA() { /*这样的方法将会创建一个新的对象,我们不想这么做*/// return Vector2(); //}/*一种方法*//*Vector2& GetA() { return *(Vector2*)&x;}*//*但是如果使用Union的话可能就要好的多*/union {// float x, y, z, w; /*如果这么写的话是不行的,因为四个值用的同一块内存*//*解决办法是用结构体,这里union和struct都没有名字,他们都是匿名函数*/struct {float x, y, z, w;};/*这里再向union添加另一个结构体,显然他们是占用同一块内存的这里就体现了Union的用处*/struct {Vector2 a, b;};};
};void PrintVector2(const Vector2& vector2) {std::cout << vector2.x << " " << vector2.y << std::endl;
}int main() {Vector4 vector = { 1.0f, 2.0f, 3.0f, 4.0f };std::cout << vector.x << std::endl; /*可以看到,还是可以访问x的*/PrintVector2(vector.a);PrintVector2(vector.b);vector.z = 500.0f;PrintVector2(vector.a);PrintVector2(vector.b);struct Union{union {float a;int b;};};Union u;u.a = 2.0f;std::cout << u.a << "," << u.b << std::endl;/*测试game*/// game::runGame();std::cin.get();
}
相关文章:
c++ Union之妙用
union的作用基本是它里面的变量都用了同一块内存,跟起了别名一样,类型不一样的别名。 基本用法: struct Union{union {float a;int b;};};Union u;u.a 2.0f;std::cout << u.a << "," << u.b << std::endl…...
JSON的处理
1、JSON JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写&#…...
matlab使用教程(20)—插值基础
1.网格和散点样本数据 插值是在位于一组样本数据点域中的查询位置进行函数值估算的方法。函数值是根据最接近查询点的样本数据点计算的。MATLAB 根据样本数据的结构,可以执行两种插值。样本数据可以形成网格,也可以是分散的。 网格化的样本数据使得插值…...
Python功能制作之简单的3D特效
需要导入的库: pygame: 这是一个游戏开发库,用于创建多媒体应用程序,提供了处理图形、声音和输入的功能。 from pygame.locals import *: 导入pygame库中的常量和函数,用于处理事件和输入。 OpenGL.GL: 这是OpenGL的Python绑定…...
leetcode-5-最长回文串
题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示…...
二、Oracle 数据库安装集
一、CentOS 安装 OCI下载地址 1. 启动 # 1. 登录服务器,切换到oracle用户,或者以oracle用户登录 su - oracle# 2. 打开监听服务 lsnrctl start# 3. 查看Oracle监听器运行状况 lsnrctl status# 4. 以sys用户身份登录 sqlplus /nolog# 5. 切换用户conn 用…...
【Python】Python中的常用函数及用法
目录 输入输出类型转换引用哈希字符串常用操作判断类型查找替换大小写转换文本对齐去除空白字符拆分和连接 列表常用操作增删改查增删改统计排序 元组常用操作 字典常用操作 范围随机数学比较常用函数三角函数数学常量 输入 input():从键盘等待用户的输入࿰…...
基于JavaEE的ssm公司员工信息管理系统的设计与实现
基于JavaEE的ssm公司员工信息管理系统的设计与实现043 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存…...
cornerstoneJS加载图片(base、矩阵)
cornerstoneJS默认加载dicom影像数据,将识别到的dicom数据转换成imageData数据,在界面上展示。故,cornerstoneJS也可直接加载imageData。 imageData数据的data是一个数组,每四个元素代表一个点,四个元素分别表示R、G、…...
3.Trunc截断函数用法
TRUNC函数用于对值进行截断 用法有两种:TRUNC(NUMBER)表示截断数字,TRUNC(date)表示截断日期 (1)截断数字 格式:TRUNC(n1,n2),n1表示被截断的数字…...
腾讯云 CODING 荣获 TiD 质量竞争力大会 2023 软件研发优秀案例
点击链接了解详情 8 月 13-16 日,由中关村智联软件服务业质量创新联盟主办的第十届 TiD 2023 质量竞争力大会在北京国家会议中心召开。本次大会以“聚焦数字化转型 探索智能软件研发”为主题,聚焦智能化测试工程、数据要素、元宇宙、数字化转型、产融合作…...
VSCode如何为远程安装预设(固定)扩展
背景 在使用VSCode进行远程开发时(python开发之远程开发工具选择_CodingInCV的博客-CSDN博客),特别是远程的机器经常变化时(如机器来源于动态分配),每次连接新的远程时,都不得不手动安装一些开…...
一文解析HTTP与HTTPS,它们的区别和联系
一文解析HTTP与HTTPS,它们的区别和联系 HTTP和HTTPS之间不同点 尽管HTTP和HTTPS在安全性方面存在差异,但它们仍然共享许多相同的基本特征和功能。这些相同点使得HTTP成为广泛应用的标准协议,并且HTTPS作为更安全的替代方案被广泛采用。HTTP…...
Faster RCNN网络数据流总结
前言 在学习Faster RCNN时,看了许多别人写的博客。看了以后,对Faster RCNN整理有了一个大概的了解,但是对训练时网络内部的数据流还不是很清楚,所以在结合这个版本的faster rcnn代码情况下,对网络数据流进行总结。以便…...
拒绝摆烂!C语言练习打卡第五天
🔥博客主页:小王又困了 📚系列专栏:每日一练 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、选择题 📝1.第一题 📝2.第二题 Ὅ…...
关于LambdaQueryWrapper.or()导致错误
这个是原始的代码,到导致一个问题,后面所有的内容,都在这个or的右边,也就是整个查询语句就这一个or,而很明显( xxx or xxx)and()这才是我们要的,所以需要将这…...
Day17-Node后端身份认证-JWT
Day17-Node后端身份验证 一 密码加密 1 MD5加密 创建MD5.js//node提供了一个内置模块crypto用于密码加密 const crypto = require("crypto")module.exports.getMd5 = function(password){const md5...
onvif中imaging setting图像画质总结!
前言: 大家好,今天给大家来分享一篇关于图像质量的内容,这个内容是我在做onvif中的imaging setting的时候,关注到里面有关于: brightness(亮度)color saturation(色彩饱和度)contrast(对比度)sharpness(锐度)white balance(白平衡…...
not in效率低(MYSQL的Not IN、not EXISTS如何优化)
【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】【创作不易,点个赞就是对我最大的支持】 前言 仅作为学习笔记,供大家参考 总结的不错的话,记得点赞收藏关注哦! 目录 …...
微信小程序拉起支付报: 调用支付JSAPI缺少参数: total_fee
1. 调用支付JSAPI缺少参数: total_fee 2. 检查返回给前端调起支付的参数是否正确 一开始是params.put("package", prepay_id); 回来改回params.put("package", "prepay_id"prepay_id);...
拉罗替尼Larotrectinib常见副作用ALT升高及疲劳如何有效应对【海得康】
在拉罗替尼(Larotrectinib)治疗NTRK融合阳性实体瘤的临床实践中,ALT升高与疲劳堪称两大最具代表性的不良反应。前者直指肝脏安全底线,后者则如影随形地侵蚀着患者的日常功能与生活质量。根据FDA批准的处方信息、三项关键临床试验&…...
一文搞懂Agent Skill的原理与设计规范
最近 Skill 这个词在 AI 圈里出现的频率,越来越高。 你打开 Claude Code、Cursor、Codex,甚至 Gemini CLI,到处都在聊「Agent Skill」。 Agent Skill 刚出来,我以为这又是个新瓶装旧酒的概念。 Prompt 改个名字嘛,能…...
企业知识产权管理痛点与解决方案系列解说四
知识产权管理人员在对申请的知识产权文件资料进行管理时,每次收到专利局发来的官文通知书数据包,都需要手动解压,判别状态后再上传至对应的管理系统中,完成后续的案件管理任务。在专利案件量比较大时,逐一修改案件状态…...
别再为Android M闪退头疼了!手把手教你用Desugaring搞定Java 8新API兼容
彻底解决Android低版本Java 8兼容性问题:从崩溃分析到Desugaring实战 当你在Android M设备上看到java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/LocalDate;这样的崩溃日志时,是否感到既熟悉又无奈?这种兼容性问题困扰着…...
告别混乱!手把手教你用CCS6.0为DSP28069搭建清晰的工程目录结构
告别混乱!手把手教你用CCS6.0为DSP28069搭建清晰的工程目录结构 在嵌入式开发领域,DSP28069因其强大的实时控制能力而广受欢迎。但许多工程师在使用CCS6.0进行开发时,常常陷入"文件海洋"的困境——找不到关键代码、版本混乱、团队…...
So-Bridge:轻量级跨语言进程通信库的设计与实践
1. 项目概述:一个连接不同世界的“桥梁” 最近在折腾一些自动化脚本和数据处理流程时,我遇到了一个挺典型的问题:手头的工具和系统五花八门,有的用Python写,有的依赖Node.js环境,还有的干脆是独立的可执行文…...
终极解放!淘宝自动任务神器让你每天多出30分钟自由时间
终极解放!淘宝自动任务神器让你每天多出30分钟自由时间 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 你知…...
从零训练专属风格模板:Midjourney V6.2风格参考+ControlNet协同工作流(含Stable Diffusion双向映射对照表)
更多请点击: https://intelliparadigm.com 第一章:Midjourney风格参考功能详解 Midjourney 的风格参考(Style Reference,简称 --sref)是一项强大的图像一致性控制机制,允许用户将一张参考图的视觉风格&…...
Motrix WebExtension终极指南:如何让你的浏览器下载速度提升300%
Motrix WebExtension终极指南:如何让你的浏览器下载速度提升300% 【免费下载链接】motrix-webextension A browser extension for the Motrix Download Manager and its forks 项目地址: https://gitcode.com/gh_mirrors/mo/motrix-webextension 你是否厌倦了…...
Python通达信数据获取终极指南:如何免费获取A股市场数据
Python通达信数据获取终极指南:如何免费获取A股市场数据 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 还在为金融数据分析而烦恼数据源问题吗?每次想要分析A股市场数据&a…...
