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)
不可以.您可以使用字母数字字符和下划线的任意组合.不要以数字开头.
但是,变量名称videoBuffer
很难与常规变量区分开来(没有语法着色).这就是为什么大多数人要么使用全部大写的预处理器宏,要么用小写字母启动它们k
,如下所示:kMyPreprocessorMacro
编辑:顺便说一句,那些不是"全局变量"(如你所标记的那样).它们是预处理器宏.基本上是在编译时运行的自动查找和替换机制.