当一个人宣布
int my_number = 300;
编译器分配足够的内存来存储 1 个整数,并在该空间中写入 300 的位表示。
当一个代替
#define MY_NUMBER 300
每当提及 MY_NUMBER
时,值都会简单地替换为 300。
我知道符号常量不是变量,并且想知道从内存分配的角度来看会发生什么?如果使用符号常量,需要使用多少内存来跟踪它?
最佳答案
零。 #define
-d 常量不是真正的常量:它没有类型,并且不占用数据内存。它在程序中的出现将被替换为文字 300
,仅此而已。常量值确实占用程序的二进制代码中的程序内存,但它不是那种可以在不进入未定义行为区域的情况下使用指针指向的内存。
关于c - 关于符号常量和内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8622065/