为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

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

查看完整回答
反对 回复 2021-05-30
?
梦里花落0921

TA贡献1772条经验 获得超5个赞

Test.h是头文件的名字,这里是_TEST_H是预处理变量,就是在编译头文件之前检测该变量是否定义过,如果未定义则编译头文件代码,主要是为了防止头文件的多重包含,一般大写来防止与其他变量冲突,便于区分。

查看完整回答
反对 回复 2021-05-30
  • 2 回答
  • 0 关注
  • 612 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信