[PIC®/AVR®/dsPIC®产品] 变量的存储顺序

[复制链接]
2650|8
 楼主| 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 | 显示全部楼层
变量存储顺序由编译器、内存模型(如大 / 小端)、变量类型及优化等级决定,通常栈上从高到低,静态 / 全局按声明或编译器规则,无绝对统一顺序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

3848

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部