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

3.13 结构体嵌套、大小及位域

目录

结构体嵌套结构体

结构体的大小

位域


结构体嵌套结构体

 含义

结构体中的成员可以是另一个结构体

 语法

struct  结构体名 {

    struct 结构体名   成员名;

     };

结构体中共同的变量可以单独放出来,单独封装一个结构体

结构体的大小

字节对齐

 含义

    字节对齐主要是针对结构体而言的,通常编译器会自动对其成员变量进行对齐,以提高数据存取的效率;

 作用

平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。

性能原因: 数据结构(尤其是栈)应该尽可能地在自然边界上对齐。 原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。 

 自身对齐

 默认对齐

 有效对齐

位域

定义

所谓的“位域”是把一个字节中的二进制位分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。

 位域的一般形式:

struct 位域结构体名 {

位域列表;

};

 其中位域列表的形式为:

类型说明符  位域名:位域长度

与结构体的使用相似

注意:不要越界


http://www.kler.cn/a/17718.html

相关文章:

  • Windows C++ TCP/IP 两台电脑上互相传输字符串数据
  • Qwen2-VL:发票数据提取、视频聊天和使用 PDF 的多模态 RAG 的实践指南
  • 数字后端教程之Innovus report_property和get_property使用方法及应用案例
  • 华为大变革?仓颉编程语言会代替ArkTS吗?
  • npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
  • Python →爬虫实践
  • Golang每日一练(leetDay0055) 最长子串、相交链表
  • Yuzuki Lizard V851S开发板 –编译 OPENCV 4.5.4
  • MySQL:常见运算符
  • FLstudio21支持中文语言及水果最新版本功能特点
  • C++之C++新特性
  • 借助PLC-Recorder,西门子PLC S7-200SMART实现2ms周期采集的方法(带时间戳采集)
  • C plus plus ——【继承与派生】
  • TouchGFX开发(2)----触摸屏幕组件点亮LED
  • 【Android入门到项目实战-- 8.5】—— 使用HTTP协议访问网络的实践用法
  • 命令设计模式
  • python基本数据类型---数字字符串
  • 有关教育的几段话
  • 基于zookeeper实现分布式锁
  • 【无人车】无人驾驶地面车辆避障研究(Matlab代码实现)
  • 特征向量中心度(Eigenvector Centrality)
  • Kali 安装中文输入法(超详细)
  • 中级软件设计师备考---软件工程1
  • git上传大大大文件项目好折磨人
  • k8s之审计日志
  • 微机作业题