c - 关于符号常量和内存分配

标签 c

当一个人宣布

int my_number = 300;

编译器分配足够的内存来存储 1 个整数,并在该空间中写入 300 的位表示。

当一个代替

#define MY_NUMBER    300

每当提及 MY_NUMBER 时,值都会简单地替换为 300。

我知道符号常量不是变量,并且想知道从内存分配的角度来看会发生什么?如果使用符号常量,需要使用多少内存来跟踪它?

最佳答案

零。 #define-d 常量不是真正的常量:它没有类型,并且不占用数据内存。它在程序中的出现将被替换为文字 300,仅此而已。常量值确实占用程序的二进制代码中的程序内存,但它不是那种可以在不进入未定义行为区域的情况下使用指针指向的内存。

关于c - 关于符号常量和内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8622065/

相关文章:

c++ - Linux 和 C/C++ :Appliction created by linking libc-2. 11 并尝试在具有 libc-2.5.so 的 Linux 机器上运行

c# - 如何始终如一地读取间歇性硬盘驱动器?

c - 解析链表时出现段错误

c - 在调用 socket() 之前将 future 的文件描述符设置为 0

c - OpenAL/OpenAL 软件

c - C中的这种排序算法有什么问题?

c - 如何用 C 语言完成这个作业?

c - C 中的指针和在链表中的使用

c - 如何在 C 中运行外部程序?

android - 为 Android 发送 RIL 请求