C++ 为什么c++;标题保护名称(大写)和下划线?
我注意到.h文件的名称大写,并使用下划线作为标题保护…为什么 例如,“doThat.h” 收割台护罩应为:C++ 为什么c++;标题保护名称(大写)和下划线?,c++,guard,capitalize,C++,Guard,Capitalize,我注意到.h文件的名称大写,并使用下划线作为标题保护…为什么 例如,“doThat.h” 收割台护罩应为: #ifndef DO_THAT_H #define DO_THAT_H 为什么要这样大写和下划线?即使在main.cpp中,您只需键入#include“doThat.h”即可使用该文件??这有一些真正的编程原因吗?为什么不直接键入: #ifndef doThat.h #define doThat.h 预处理器定义必须使用有效的标识符。点在标识符中无效 还有一种约定,即预处理器定义(尤其
#ifndef DO_THAT_H
#define DO_THAT_H
为什么要这样大写和下划线?即使在main.cpp中,您只需键入#include“doThat.h”
即可使用该文件??这有一些真正的编程原因吗?为什么不直接键入:
#ifndef doThat.h
#define doThat.h
预处理器定义必须使用有效的标识符。点在标识符中无效
还有一种约定,即预处理器定义(尤其是预处理器宏)使用所有大写名称,以区别于非预处理器标识符。(虽然这不是一个硬性规则;例如,
errno
通常是一个宏,但它不是大写。)这只是一个命名约定,不是硬性规则。例如,DOTHAT_H
或DOTHAT
或DOTHAT
的情况并不少见。重要的是,#define
使用一个与其他文件不冲突的唯一标识符。通常会使用调用文件名的一些变体。更好的问题是,为什么不只键入一次#pragma
。这是事实上的标准,这对不突出显示语法的终端特别有用。使用大写的预处理器指令使它们易于区分。非预处理器标识符的示例是什么?抱歉,我是一个noob:(@user3624683预处理器标识符是由程序处理的标识符,通常称为cpp
;通常,这是使用#define
(或通过编译器的-D
选项)创建的任何东西),尽管有一些内置的预处理器标识符,如\uu cplusplus
。根据定义,任何未经预处理器处理的标识符都是非预处理器标识符。大多数变量和函数名都是非预处理器标识符。