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

Unions

共同体

C Unions与C Structures基本相同,不同之处在于Union不允许包含多个变量,每个变量都有自己的内存,而Union允许同一个变量使用多个名称。这些名称可以将内存视为不同的类型(并且联合的大小将是最大类型的大小,+编译器可能决定给它的任何填充)

因此,如果您希望能够以不同的方式读取变量的内存,例如一次读取整数一个字节,您可以使用以下内容:

union intParts {
  int theInt;
  char bytes[sizeof(int)];
};

允许您单独查看每个字节而不使用指针并使用指针算法:

union intParts parts;
parts.theInt = 5968145; // arbitrary number > 255 (1 byte)

printf("The int is %i\nThe bytes are [%i, %i, %i, %i]\n",
parts.theInt, parts.bytes[0], parts.bytes[1], parts.bytes[2], parts.bytes[3]);

// vs

int theInt = parts.theInt;
printf("The int is %i\nThe bytes are [%i, %i, %i, %i]\n",
theInt, *((char*)&theInt+0), *((char*)&theInt+1), *((char*)&theInt+2), *((char*)&theInt+3));

// or with array syntax which can be a tiny bit nicer sometimes

printf("The i

相关文章:

  • 基于springboot的地质灾害应急管理系统
  • Structures
  • 向量数据库入坑指南:聊聊来自元宇宙大厂 Meta 的相似度检索技术 Faiss
  • 电子邮件营销新趋势-自动化
  • ICT产业关联效应的国际比较——基于投入产出的分析
  • 【algorithm】算法学习----堆
  • Q_ENUM Q_ENUMS Q_ENUM_NS Q_FLAG Q_FLAGS Q_FLAG_NS
  • 国外5G行业应用产业政策分析及对我国的启示
  • 【C语言】文件输入输出操作
  • 【教3妹学算法-每日一题】竞赛题:6171. 和相等的子数组
  • 遗传算法GA求解非连续函数问题
  • 【电商营销】为什么需要从获取客户转向留住客户
  • 实战讲解Redis基础数据类型List增删改查(带Java源码)
  • 分布式消息队列RocketMQ介绍
  • Django视图层模版层全面解析全网最细的教程
  • 时间复杂度分析经典问题——最大子序列和
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 78. Subsets
  • egg(89)--egg之redis的发布和订阅
  • Hibernate最全面试题
  • linux安装openssl、swoole等扩展的具体步骤
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • PHP 小技巧
  • springMvc学习笔记(2)
  • spring学习第二天
  • SQLServer之创建数据库快照
  • Xmanager 远程桌面 CentOS 7
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 力扣(LeetCode)21
  • 微信小程序实战练习(仿五洲到家微信版)
  • 详解NodeJs流之一
  • 小程序01:wepy框架整合iview webapp UI
  • 学习JavaScript数据结构与算法 — 树
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 正则表达式-基础知识Review
  • (02)vite环境变量配置
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (27)4.8 习题课
  • (4)事件处理——(7)简单事件(Simple events)
  • (day6) 319. 灯泡开关
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十一)手动添加用户和文件的特殊权限
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (正则)提取页面里的img标签
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .equals()到底是什么意思?
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划