首页 新闻 会员 周边 捐助

const这样理解对吗

0
悬赏园豆:10 [已关闭问题]
const变量在编译时就直接被替换,也就不存在内存应用
chenleinet的主页 chenleinet | 菜鸟二级 | 园豆:270
提问于:2008-08-29 16:10
< >
分享
其他回答(6)
0
const是编译时就赋值了,但是不是说不存在内存中,程序运行时,dll会load近内存的吧。
玉开 | 园豆:8822 (大侠五级) | 2008-08-29 16:20
0
我觉得const实在编译期直接替换,因此确实不存在栈空间的占用问题
Gray Zhang | 园豆:17610 (专家六级) | 2008-08-29 16:39
0
不大清楚C#中的const是如何实现的。在C++中的,使用到const的时候,编译出来的汇编代码是立即寻址,比如: const int x=2; mov dword ptr [ebp-8],02h 还是要把数据送到内存中去的。
小虎无忧 | 园豆:210 (菜鸟二级) | 2008-08-29 17:17
0
const值是在编译期被替换. 应该是直接保存在低级指令里,但也可能被复制到栈里(比如用const值作为参数调用函数),或者堆上对象的字段里.
deerchao | 园豆:8367 (大侠五级) | 2008-08-29 17:35
0
根据反汇编的经验,GNU C++是编译时替换 C#不知道
JimLiu | 园豆:300 (菜鸟二级) | 2008-08-30 14:37
0
个人赞同:编译过程中直接替换.
zjy | 园豆:3194 (老鸟四级) | 2008-09-01 11:02
0
同意Gray Zhang的意见,在编译时被替换的。
Jun1st | 园豆:240 (菜鸟二级) | 2008-09-02 17:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册