预处理程序指令:为什么#define头文件的标识符与头文件名不同

时间:2017-02-25 10:47:58

标签: c++ c-preprocessor

为什么在myheader.h中,我们写道:

#ifndef MYHEADER_H
#define MYHEADER_H
...
#endif

因为,标识符区分大小写(小写和大写字母是不同的),并且每个字符都很重要。以上如何有效?它应该是

#ifndef myheader.h
#define myheader.h
...
#endif

下划线的目的是什么?如果我有两个带有名称的单独头文件怎么办:MyHeader.h和myheader.h,预处理器如何区分它们?

1 个答案:

答案 0 :(得分:1)

前导下划线后跟大写表示它是C ++实现定义的名称,因为此表单是为实现保留的,或者是由在系统中看到此名称的人定义的名称标题和只是复制猫采用它而不理解它。