关于在C++编程中:#ifndef _TEST_H 后面这个TEST_H为什么是大写?

我记得头文件里是用的小写的Test,h,为什么在实现文件里要写成大写TEST_H啊?这个宏定义一定要这样要求吗?
实际上这个_TEST_H写成其它的都可以咯,字母代号其实没有意义,相当于只是一个注释?

SMILET
浏览 567回答 2
2回答

翻过高山走不出你

这里的#ifndef是条件编译,不知道你是否了解这个,它完整的结构是#ifndef /*一些代码*/ #endif 将上面的例子代入到这里就是如果 _TEST_H_ 是没有被定义过的,那么就执行中间的代码,如果已经被定义过了,就不执行中间的代码,这里的_TEST_H 是一个常量,而跟你所说的头文件是没有什么关系的,只是书写的形式上有点像,不知道这样解释你是否明白?

梦里花落0921

Test.h是头文件的名字,这里是_TEST_H是预处理变量,就是在编译头文件之前检测该变量是否定义过,如果未定义则编译头文件代码,主要是为了防止头文件的多重包含,一般大写来防止与其他变量冲突,便于区分。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
iOS