C语言中的常量是放在内存地方

_skytrails 2014-05-27 01:24:39
  一个C语言程序的内存一般分为
1、堆区:动态内存分配
2、栈区:局部变量
3、代码段:存放程序执行代码
4、BSS段:未初始化的全局变量的一块内存区域
5、数据段:已初始化的全局变量的一块内存区域
那这样程序中的常量是放在哪个地方的?
...全文
678 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_skytrails 2014-05-27
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
.rdata .text Windows下请学会使用dumpbin.exe Linux下请学会使用objdump
这个让我想到了授之于鱼不如授之于渔,谢谢赵老师!
赵4老师 2014-05-27
  • 打赏
  • 举报
回复
.rdata .text Windows下请学会使用dumpbin.exe Linux下请学会使用objdump
cao_julians 2014-05-27
  • 打赏
  • 举报
回复
对于基本类型的常量,一般编译器常常并不存储,而是直接生成数据编码、编在机器指令中,如: a=a+10; //C,C++代码 ====》 mov ax, a add ax, 10 //汇编码,常量10作为指令的一部分 仅字符串字面量(新标准不用常量这个词汇)需要分配内存,
蒋晟 2014-05-27
  • 打赏
  • 举报
回复
C语言标准中规定存储位置是由编译器自决的。可以是ROM,可以是文件(假定目标平台有文件这个概念的话),也可以是数据库。 堆、栈、分段的PE文件格式等等都是实现细节,标准里并没有。

65,209

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧