预处理器宏定义是否需要在头文件中的CAPS中?

sup*_*gob 1 c macros definition header-files c-preprocessor

在我写的代码中,我被告知要按以下方式在头文件中定义变量:

#define CLR_BLACK 0x0000
Run Code Online (Sandbox Code Playgroud)

因为这是我给出的唯一例子,我想知道带有#define命令的头文件中定义的所有变量是否都需要大写.例如,以下内容是否有效?

#define videoBuffer (u16*)0x6000000
Run Code Online (Sandbox Code Playgroud)

Dru*_*erB 6

不可以.您可以使用字母数字字符和下划线的任意组合.不要以数字开头.

但是,变量名称videoBuffer很难与常规变量区分开来(没有语法着色).这就是为什么大多数人要么使用全部大写的预处理器宏,要么用小写字母启动它们k,如下所示:kMyPreprocessorMacro

编辑:顺便说一句,那些不是"全局变量"(如你所标记的那样).它们是预处理器宏.基本上是在编译时运行的自动查找和替换机制.