我有一个代码库,它以与我习惯的方式不同的方式使用#define。
我知道,例如,#define a 5将在代码中用5替换变量a。
但这意味着什么:
'#define MSG_FLAG 5, REG, MSGCLR'
Run Code Online (Sandbox Code Playgroud)
我尝试用一个简单的代码来完成它并进行编译。它采用最后一个值(例如第三个参数为MSGCLR)。
我读过很多关于外部变量的内容,但似乎没有人适当地解决它。如果我在 C 中声明并定义一个变量,它会在文件的该范围内分配内存。但在多文件模块化项目的后期阶段,该变量被声明为 extern,该变量应将其存储在数据段中,以展示 extern 功能的全局行为。
所以我试图弄清楚如何以及何时分配内存,即 extern 变量的编译时和运行时行为。