我记得头文件里是用的小写的Test,h,为什么在实现文件里要写成大写TEST_H啊?这个宏定义一定要这样要求吗?实际上这个_TEST_H写成其它的都可以咯,字母代号其实没有意义,相当于只是一个注释?
2 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
这里的#ifndef是条件编译,不知道你是否了解这个,它完整的结构是#ifndef /*一些代码*/ #endif 将上面的例子代入到这里就是如果 _TEST_H_ 是没有被定义过的,那么就执行中间的代码,如果已经被定义过了,就不执行中间的代码,这里的
_TEST_H 是一个常量,而跟你所说的头文件是没有什么关系的,只是书写的形式上有点像,不知道这样解释你是否明白?
梦里花落0921
TA贡献1772条经验 获得超5个赞
Test.h是头文件的名字,这里是_TEST_H是预处理变量,就是在编译头文件之前检测该变量是否定义过,如果未定义则编译头文件代码,主要是为了防止头文件的多重包含,一般大写来防止与其他变量冲突,便于区分。
添加回答
举报
0/150
提交
取消