结构体大小struct
来源:互联网 发布:avmoo2017最新域名 编辑:程序博客网 时间:2024/05/17 06:08
int main(){ struct A { char a; double b; enum colour{red=1, yellow}; }; cout <<sizeof(A)<< endl; return 0;}
在实际中,存储变量时地址要求对齐,编译器在编译程序时会遵循两条原则:
(1)结构体变量中成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)
(2)结构体大小必须是所有成员大小的整数倍,也即所有成员大小的公倍数。
char a; 1字节0个偏移量
double b; 8字节1+0个偏移量,偏移量变为8
则最终为:16
struct A
{
enum day{monring, moon, aftermoon};
};
sizeof(A) //1
枚举类型属于用户自定义类型,在结构体中你仅仅是声明了一个枚举类型,但并没有定义该枚举类型的变量,C中只要不定义变量就不会涉及到内存的开辟,所以用运算符测struct的大小只会是1,而不会连同算上day的大小,就因为day不是变量,是自定义的枚举类型。和C++的类一样,在类中定义了一堆数据成员和成员函数,但是系统始终不会给它开辟内存,只有当你定义了类的对象时,系统才会给它分配相应大小的内存。类也是用户自定义的数据类型。
一定要记住,只要不定义数据类型的变量,就不可能为其分配内存空间。
阅读全文
0 0
- 结构体大小struct
- struct 结构体的大小
- struct结构体的大小
- 探寻struct ipq_packet_msg结构体大小
- 结构体(struct) 的 sizeof 大小
- struct 结构体大小的判断
- struct 结构体类型的大小计算
- struct结构体的大小计算:
- 结构体(struct) 的 sizeof 大小
- struct 结构体类型的大小计算
- struct结构的大小
- struct结构大小的问题
- #pragma预处理分析 和 struct 结构体大小的计算
- golang 获取一个结构体 struct 大小的代码
- 实例讲解c语言结构体大小 sizeof(struct A)
- 结构体(struct) 用法
- 结构体struct module
- 什么结构体 struct
- 数据结构之数组和广义表
- Drupal 8 常用模块介绍
- Hbase客户端操作api
- 《Netty学习》(六)ChannelHandlerContext学习
- Oracle之 等待事件log file sync + log file parallel write (awr优化)
- 结构体大小struct
- (网易2018校招笔试)[编程题]相反数
- Redis集群方案:高可用
- CCF认证 201312-2 ISBN号码
- 数据结构之树和二叉树
- 五、Git-管理修改
- Java 并发:Executors 和线程池
- Java虚拟机运行时数据区域
- JS中的闭包(Closure)