LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: jiyongguang

问一个const的问题

[复制链接]
发表于 2006-10-24 17:02:54 | 显示全部楼层
Post by wall_john
看到输出了没?相同的地址内容确不一样。objdump代码自己看汇编吧,嘻嘻。

加了volatile就是5了
不过地址却变成了1
回复 支持 反对

使用道具 举报

发表于 2006-10-24 19:43:47 | 显示全部楼层
所以得出的结论是,g++编译的代码const类型的变量在pre-compile的时候就做了处理了,
所以const int a = 4就像#define a 4一样。加volatile破坏了这种约定,导致了一个异常
的结果(汇编代码中生成了一些莫名奇妙的代码)。
回复 支持 反对

使用道具 举报

发表于 2006-10-24 23:31:57 | 显示全部楼层
貌似在 C 中只是不能用定义为 const 的那个变量来改变其值,与 C++ 中的常量还不一样
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表