由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 又一个初级问题: C++中多如牛毛的#define格式
相关主题
弱问c++里有没有NULL这个keyword?怎样include一个函数
弱问C++一个问题 一直不解c++,这种做法不行?
C 里面有办法永久改变一个指针的属性吗?forward declaration
两个class的交叉引用问题global variable usage question in C++
最基本的C语言编程问题请教Why should i include .cpp instead of .h
另一个Fortran 问题C pre-compiling 如何用macro替换括号?
弱问一个ifdef 和ifndef问低级问题
问个两个.h文件互相include的问题这个结果是啥,为什么呢?
相关话题的讨论汇总
话题: define话题: c++话题: hh话题: 多如牛毛话题: 初级
进入Programming版参与讨论
1 (共1页)
e*****r
发帖数: 379
1
现在在理解一个open source project, 发现里面的#define多如牛毛。---为什么C++
guy likes #define???
问题2:为什么#define的命名,一般都有个  "....._H" 或者 "_HH" , for
example:
#define GlobalUnixMakefileGenerator3_H
别见笑,问题很初级。多谢!
e*****r
发帖数: 379
2
#include guard???
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
9
thanks!!
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
: 别见笑,问题很初级。多谢!

1 (共1页)
进入Programming版参与讨论
相关主题
这个结果是啥,为什么呢?最基本的C语言编程问题请教
基础问题:在header里面define function另一个Fortran 问题
Help C++ Template function link error .弱问一个ifdef 和ifndef
【请教】mpicc 和 mpiCC编译问题问个两个.h文件互相include的问题
弱问c++里有没有NULL这个keyword?怎样include一个函数
弱问C++一个问题 一直不解c++,这种做法不行?
C 里面有办法永久改变一个指针的属性吗?forward declaration
两个class的交叉引用问题global variable usage question in C++
相关话题的讨论汇总
话题: define话题: c++话题: hh话题: 多如牛毛话题: 初级