在我正在编写的代码中,我被告知以以下方式在头文件中定义一个变量:
#define CLR_BLACK 0x0000
由于这是我得到的唯一示例,我想知道是否所有使用#define 命令在头文件中定义的变量都需要大写。例如,以下内容是否有效?
#define videoBuffer (u16*)0x6000000
在我正在编写的代码中,我被告知以以下方式在头文件中定义一个变量:
#define CLR_BLACK 0x0000
由于这是我得到的唯一示例,我想知道是否所有使用#define 命令在头文件中定义的变量都需要大写。例如,以下内容是否有效?
#define videoBuffer (u16*)0x6000000
不可以。您可以使用字母数字字符和下划线的任意组合。不要以数字开头。
但是,变量名称之类的变量videoBuffer
很难与常规变量区分开来(没有语法着色)。这就是为什么大多数人要么对预处理器宏使用全部大写,要么以小写开头k
,如下所示:kMyPreprocessorMacro
编辑:顺便说一句(正如您标记的那样),这些不是“全局变量”。它们是预处理器宏。基本上是在编译时运行的自动查找和替换机制。
不,但这是一种常见且有用的约定,因此如果您正在阅读代码,您可以看到什么是宏,什么不是。有关包含文件,请参阅C++ #ifndef,为什么头文件都使用大写字母?
不。
#define
是一个预处理器宏。它用字符串之后的任何内容替换它之后的第一个字符串的每次出现。第一个字符串不需要大写。