在我写的代码中,我被告知要按以下方式在头文件中定义一个变量:
#define CLR_BLACK 0x0000
因为这是我给出的唯一例子,所以我想知道带有#define命令的头文件中定义的所有变量是否都需要大写。例如,以下内容是否有效?
#define videoBuffer (u16*)0x6000000
答案 0 :(得分:6)
否。您可以使用字母数字字符和下划线的任意组合。不要以数字开头。
然而,像videoBuffer
这样的变量名称很难与常规变量区分开来(没有语法着色)。这就是为什么大多数人都使用预处理器宏的全部大写或者用小写k
启动它们,如下所示:kMyPreprocessorMacro
编辑:顺便说一句,那些不是“全局变量”(正如你标记的那样)。它们是预处理器宏。基本上是在编译时运行的自动查找和替换机制。
答案 1 :(得分:0)
没有。
#define
是一个预处理器宏。它替换了字符串之后的第一个字符串。第一个字符串不需要加盖。
答案 2 :(得分:0)
不,但这是一个常见而有用的约定,所以如果您正在阅读代码,您可以看到什么是宏,什么不是。见C++ #ifndef for include files, why is all caps used for the header file?