C中的宏内存占用?

macro memory footprint in C?

哪个更耗内存? 宏还是全局变量?

例如

#define NAME "subsystem"

const char *name = "subsystem";

And

#define AGE 28
const int age = 28;

对于这两种情况,它们使用相同的内存吗? 还是全局变量大小小于宏?

宏本身不消耗目标文件中的任何内容 space。是表示源代码的快捷方式或助记符。在宏的帮助下表达的编译源代码所需的内存取决于多种因素,尤其是宏定义的细节及其使用的上下文和频率。

在您的特定示例中,全局变量在编译的目标文件中使用 space,但宏不使用。然而,这是人为的结果。在表示值的宏 used 中,它们表示的值 do 在对象文件中消耗 space。