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

时间:2012-11-03 01:20:42

标签: c macros c-preprocessor header-files definition

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

#define CLR_BLACK 0x0000

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

#define videoBuffer (u16*)0x6000000

3 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:0)

没有。

#define是一个预处理器宏。它替换了字符串之后的第一个字符串。第一个字符串不需要加盖。

答案 2 :(得分:0)

不,但这是一个常见而有用的约定,所以如果您正在阅读代码,您可以看到什么是宏,什么不是。见C++ #ifndef for include files, why is all caps used for the header file?