首页 > 其他分享 >结构体

结构体

时间:2023-06-12 15:33:03浏览次数:41  
标签:int 成员 位段 对齐 整数倍 结构

结构体不能自引用

正确方式:

struct Node

{

int data;

struct Node* next;

};

内存对齐规则

1.第一个成员在于结构体变量偏移量为0的地址处

2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处

对齐数=编译器默认的一个对齐数于该成员大小的较小值

vs默认为8

3,结构体总大小为最大对齐数(每个成员变量都有一对齐数)的整数倍

4,如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。


设计结构体,我们既要满足对齐,又要节省空间:

让占用空间小的成员尽量集中在一起

位段:

1.位段的成员必须是int 、unsigned int或signed int 。

2.位段的成员名后边有一个冒号和数字。

注意:

位段可移植性不好,不支持跨平台


枚举:

enum 关键字

联合体:

union 关键字

标签:int,成员,位段,对齐,整数倍,结构
From: https://blog.51cto.com/u_15839001/6462971

相关文章

  • 数据结构模拟器地址
    数据结构在线模拟器 Github网址:https://github.com/IACJ/react-datastructer在线网址:https://iacj.github.io/react-datastructer/#/  这个在线的模拟器包含“栈”、“队列”、“堆”、“BST”等数据结构,每个数据结构以图像的方式展示在我们面前,同时又有各自的帮助文......
  • 深入浅出数据结构
    作为一名前端开发工程师,你可能有时会问:学习数据结构或者算法对于前端工程师有用么?总的来说,这些基础学科在短期内收效确实甚微,但是我们首先不要将自己局限在前端工程师这点上,当我们把视野放到编程这个角度去说,数据结构算法一定是有用的,并且也是你未来的一个天花板。可以不花费集中的......
  • 8种通用数据结构
    数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。数据结构在计算机科学和软件工程领域具有广泛而多样的用途。  几乎所有已开发的程序或软件系统都使用数据结构。此外,数据结构属于计算机科学和软件工程的基础。当涉及软件工程面试问题时,这......
  • 【操作系统】【硬件结构】CPU 缓存一致性
    1  前言我们看了存储器的层次结构,知道CPU中有多级缓存,有共享的也有私有的,那么不可避免的一个问题就是缓存的一致性,这节我们来看看哈。2  CPUCache的数据写入随着时间的推移,CPU和内存的访问性能相差越来越大,于是就在CPU内部嵌入了CPUCache(高速缓存),CPUCache离CPU......
  • 【操作系统】【硬件结构】磁盘比内存慢几万倍?存储器的层次结构?
    1  前言大家如果想自己组装电脑的话,肯定需要购买一个CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬盘。相信大家都知道内存和硬盘都属于计算机的存储设备,断电后内存的数据是会丢......
  • 【操作系统】【硬件结构】如何写出让 CPU 跑得更快的代码?
    1  前言代码都是由CPU跑起来的,我们代码写的好与坏就决定了CPU的执行效率,特别是在编写计算密集型的程序,更要注重CPU的执行效率,否则将会大大影响系统性能。CPU内部嵌入了CPUCache(高速缓存),它的存储容量很小,但是离CPU核心很近,所以缓存的读写速度是极快的,那么如果CPU......
  • 利用PowerDesigner将oracle表结构转成mysql表结构
    1、导出ORACLE表结构2、File->ReverseEngineer->Database,设置物理模型的名称及所使用数据库类型,选择Oracleversion11g,然后点击Usingscriptfiles框里的AddFiles按钮,选择已经导出的Oracle表结构sql文件3、改变数据库类型,Database->ChangeCurrentDBMS,CurrentDBMS......
  • 【数据结构】单链表
    前言<fontcolor=bluesize=4>在学习数据结构时,单链表可谓是第一个需要跨越的台阶。</font>从C语言到数据结构,单链表能够真正的反映我们C语言到底学的扎不扎实,那是因为,单链表对于C语言中的指针,结构体,以及函数模块的实现有较高的要求。因此,通过本章的学习,要是能够自我实现单......
  • 计算机体系结构面试题
    1、请解释什么是指令级并行(Instruction-LevelParallelism,ILP)并提供一个示例说明? 在计算机体系结构中,指令级并行是指同时执行多个计算机指令的能力,以提高程序的执行速度。这种并行性的实现通常涉及到在单个指令流中发现和执行多个独立指令的方法。示例:假设有以下三个指令:ADD......
  • HBase的数据结构原理与使用
    一、HBase简介HBase是一个开源的、分布式的、版本化的NoSQL数据库(即非关系型数据库),依托Hadoop分布式文件系统HDFS提供分布式数据存储,利用MapReduce来处理海量数据,用Zookeeper作为其分布式协同服务,一般用于存储海量数据。HDFS和HBase的区别在于,HDFS是文件系统,而HBase是数据库。HBa......