1

在我正在编写的代码中,我被告知以以下方式在头文件中定义一个变量:

#define CLR_BLACK 0x0000

由于这是我得到的唯一示例,我想知道是否所有使用#define 命令在头文件中定义的变量都需要大写。例如,以下内容是否有效?

#define videoBuffer (u16*)0x6000000
4

3 回答 3

6

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

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

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

于 2012-11-03T01:21:47.110 回答
0

不,但这是一种常见且有用的约定,因此如果您正在阅读代码,您可以看到什么是宏,什么不是。有关包含文件,请参阅C++ #ifndef,为什么头文件都使用大写字母?

于 2012-11-03T01:48:04.090 回答
0

不。

#define是一个预处理器宏。它用字符串之后的任何内容替换它之后的第一个字符串的每次出现。第一个字符串不需要大写。

于 2012-11-03T01:26:21.540 回答