2016 - 2024

感恩一路有你

结构体所占内存大小 ”结构体定义时,结构体本身并不占用存储空间,系统并不给结构体分配存储空间。“这句话是对的吗?

浏览量:1754 时间:2021-03-13 19:11:34 作者:admin

”结构体定义时,结构体本身并不占用存储空间,系统并不给结构体分配存储空间。“这句话是对的吗?

要知道何时分配内存空间,您需要知道定义和声明的含义。定义有如下显式格式,如:连接说明符、类型说明符变量名;声明比较复杂,声明包括类型声明、变量声明等

而定义一个结构一般不分配内存,声明一个结构变量就是分配内存结构类型的定义只告诉编译器如何显示数据,但不允许计算机为其分配空间。struct type的定义是struct的声明。无论是定义还是声明都是正确的。

只有在声明结构变量时,才能对其进行赋值。要使用struct,需要创建变量,即struct变量。

创建结构变量:struct book library

当您看到此指令时,编译器将创建结构变量库。此时,编译器将根据book模板为变量分配内存空间,这里的存储空间与该变量相结合。

同时,以后访问结构变量成员时,需要使用结构变量名称进行访问。

扩展数据:

结构的大小通常是结构中包含的变量大小之和。但是,对于较小的结构构件,它们可能会被强制对齐,导致空间空缺。这与阅读记忆机制有关,是为了提高效率。

通常,32位计算机按4字节对齐,小于4字节的视为4字节,连续小于4字节的视为4字节,直到四舍五入且下一个元素超过对齐位置,如3、2或1、4,需要单独调整(以下结构大小为8字节)。

相应地,64位计算机按8字节对齐。

但是,对齐不是绝对的。使用#pragma pack()修改对齐方式。如果更改为1,则结构大小是成员变量大小的总和。

全局结构在数据部分,局部结构在堆栈上,函数在代码部分。函数必须占用空间,但不占用堆栈空间。在调用函数时,它最多通过按堆栈来记录函数地址。请给我们一些建议

结构体所占内存大小 空结构体占多少内存 位域结构体占用空间

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。