dongnanxibei 发表于 2024-5-18 16:11

变量的存储顺序

变量在定义后是如何在内存中存储的呢?
是先定义的变量放在高地址还是放在低地址呢?
在结构体中先定义的变量是在低地址呢,还是高地址呢?
你又想过吗?

dongnanxibei 发表于 2024-5-18 16:11

dongnanxibei 发表于 2024-5-18 16:21

可以看到孤立变量都是先定义的在高位,后定义的在低位。
而对于结构体内变量是先定义的在低位,后定义的在高位。

玛尼玛尼哄 发表于 2024-5-25 20:26

这个值的思考,在针对那些需要指针和地址的应用里很重要

看别人照片 发表于 2024-5-27 09:14

指针和地址存放的地址是不一样的

MianQi 发表于 2024-6-18 21:26

没有想过,但这是一个有趣和有意义的问题,感谢楼主的分享。那这个存储顺序是否跟编译器有关,如果是,是否在编译器中有可选的设置?

hehhehee 发表于 2024-9-28 23:50

成员的对齐可能影响实际的内存布局。如果某个成员需要特定的对齐(如4字节或8字节对齐),编译器可能会插入填充字节,以确保每个成员的对齐要求得到满足。

拿走一光年 发表于 2025-7-17 20:24

变量存储顺序通常由编译器决定,全局 / 静态变量存数据段,局部变量存栈,动态分配存堆,按声明顺序或优化策略排列。

永久冻结 发表于 2025-8-29 12:56

变量存储顺序由编译器、内存模型(如大 / 小端)、变量类型及优化等级决定,通常栈上从高到低,静态 / 全局按声明或编译器规则,无绝对统一顺序。
页: [1]
查看完整版本: 变量的存储顺序