e*****r 发帖数: 379 | 1 现在在理解一个open source project, 发现里面的#define多如牛毛。---为什么C++
guy likes #define???
问题2:为什么#define的命名,一般都有个 "....._H" 或者 "_HH" , for
example:
#define GlobalUnixMakefileGenerator3_H
别见笑,问题很初级。多谢! |
e*****r 发帖数: 379 | |
M**********n 发帖数: 432 | 3
Well, authors of these projects probably from a heavy C background.
To prohibit multiple inclusions in a single source file.
【在 e*****r 的大作中提到】 : 现在在理解一个open source project, 发现里面的#define多如牛毛。---为什么C++ : guy likes #define??? : 问题2:为什么#define的命名,一般都有个 "....._H" 或者 "_HH" , for : example: : #define GlobalUnixMakefileGenerator3_H : 别见笑,问题很初级。多谢!
|
e*****r 发帖数: 379 | 4 多谢! -- 我的理解对吗? --关于 "_H", "_HH"
Compiler 会自动识别"_H"或者"_HH",认为这是个header的文件名???
【在 M**********n 的大作中提到】 : : Well, authors of these projects probably from a heavy C background. : To prohibit multiple inclusions in a single source file.
|
t****t 发帖数: 6806 | 5 不对
you need this construction
#ifndef XXXX
#define XXXX
// your .h file goes here
#endif
【在 e*****r 的大作中提到】 : 多谢! -- 我的理解对吗? --关于 "_H", "_HH" : Compiler 会自动识别"_H"或者"_HH",认为这是个header的文件名???
|
e*****r 发帖数: 379 | 6 我想知道的是那个compiler怎么会知道XXXX是header文件,是不是需要一个后缀 "_H",
我也好像看见过加"_HH"后缀的 |
O*******d 发帖数: 20343 | 7 因为C/C++compiler不能保证同一个头文件不被包括一次以上,所以码工需要多写几
行#define. 这种基本上成了标准写法
#ifndef XXXXX // 最先一行
#define XXXXX
头文件的内容
#endif //最后一行
对XXXXX的要求只需要独特即可。当然要满足identifier的条件。
【在 e*****r 的大作中提到】 : 现在在理解一个open source project, 发现里面的#define多如牛毛。---为什么C++ : guy likes #define??? : 问题2:为什么#define的命名,一般都有个 "....._H" 或者 "_HH" , for : example: : #define GlobalUnixMakefileGenerator3_H : 别见笑,问题很初级。多谢!
|
O*******d 发帖数: 20343 | 8 任何满足identifier 的名字都可以用。 加H是为了码工的方便。
【在 e*****r 的大作中提到】 : 我想知道的是那个compiler怎么会知道XXXX是header文件,是不是需要一个后缀 "_H", : 我也好像看见过加"_HH"后缀的
|
e*****r 发帖数: 379 | |
a***y 发帖数: 2803 | 10 re
【在 O*******d 的大作中提到】 : 因为C/C++compiler不能保证同一个头文件不被包括一次以上,所以码工需要多写几 : 行#define. 这种基本上成了标准写法 : #ifndef XXXXX // 最先一行 : #define XXXXX : 头文件的内容 : #endif //最后一行 : 对XXXXX的要求只需要独特即可。当然要满足identifier的条件。
|
a***y 发帖数: 2803 | 11 这种名字要起得很独特,保证是只有这一个.所以用_的很多,比如
_THIS_IS_ABOUT_VECTOR_PIC_VERSION_2_
【在 e*****r 的大作中提到】 : 现在在理解一个open source project, 发现里面的#define多如牛毛。---为什么C++ : guy likes #define??? : 问题2:为什么#define的命名,一般都有个 "....._H" 或者 "_HH" , for : example: : #define GlobalUnixMakefileGenerator3_H : 别见笑,问题很初级。多谢!
|