C语言中系统既然不给常量分配存储空间,那么编译系统又是如何"记忆"和使用常量的呢? 40
2011-12-05
展开全部
耐心看完,你应该能明白了:
C语言中,常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里了。
常量和全程变量,放在初始化段。
局部变量,通常在栈里。
常量在程序加载时同时加载。
C语言中,常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里了。
常量和全程变量,放在初始化段。
局部变量,通常在栈里。
常量在程序加载时同时加载。
展开全部
在预编译中有一些编译级的“变量”,常量表中,但它们必需是在编译前忆经确定的值,翻译成机器码时对照常量表处理成了立即数(立即数可能和执行代码在一个地字节里,所以也可能连代码空间都不占用)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
常量是不占用空间的,是用一个标志来标志这个常量的。例如宏定于#define PI 3.14这里的PI就是常量。这个常量在编译期间就已经展开了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
谁说不分配存储空间了,不是在数据段的静态存储区吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
常量有空间,不一定在哪,比如说如果函数内的局部常量的话其实就在函数堆栈里面⋯⋯只是不允许你写入而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询