哪一个会花费更多内存? 宏观或全局变量?
对于前。
#define NAME "subsystem"
const char *name = "subsystem";
And
#define AGE 28
const int age = 28;
对于这两种情况,他们使用相同的内存吗? 或者是全局变量大小小于宏?
答案 0 :(得分:1)
宏本身在对象文件中不占用任何空间。它是表达源代码的快捷方式或助记符。在宏的帮助下表示的编译源代码所需的内存取决于各种各样的事情,尤其是宏定义的细节以及它们的使用的上下文和频率。
在您的特定示例中,全局变量占用编译对象文件中的空间,但宏不会。然而,这是一个人为的结果。如果表示值的宏使用,则它们表示的值 do 会占用目标文件中的空间。