【C++】#ifndef #endif含义与使用说明

一、C++中#ifndef与#endif含义

说明: #ifndef#endif 是 C++ 预处理器指令,它们通常用来避免头文件的重复包含。

头文件是 C++ 中常用的一种代码组织方式,可以将一些公共的代码定义放到一个头文件中,然后在其他文件中通过 #include 指令引用该头文件。然而,如果在多个文件中引用了同一个头文件,那么就会出现重复定义的问题,从而导致编译错误。

为了解决该问题,可以在头文件的开头添加 #ifndef#endif 指令,如下所示:

//testApp.h

#ifndef __DEBUG_RUN_TEST_H__
#define __DEBUG_RUN_TEST_H__

#include "testCommom.h"
#include "testApi.h"
    .
    .
    .
#endif //__DEBUG_RUN_TEST_H__

​ 上述代码的含义为:如果 __DEBUG_RUN_TEST_H__ 宏未被定义,那么就定义它,并执行头文件内容。如果 __DEBUG_RUN_TEST_H__ 宏已经被定义了,那么就不再执行头文件内容,避免重复定义的问题。

​ 当一个头文件被多次引用时,第一次引用时会执行头文件内容,同时定义 __DEBUG_RUN_TEST_H__ 宏;第二次及以后的引用时,由于 __DEBUG_RUN_TEST_H__ 宏已经被定义了,因此不会再次执行"testCommom.h"与"testApi.h"头文件内容,避免重复定义。

注意:
__DEBUG_RUN_TEST_H__ 宏名可以随意命名,只要保证在头文件中唯一即可。常用的做法是将宏名定义为头文件的文件名,加上一个下划线前缀和后缀,如上述示例中的 __DEBUG_RUN_TEST_H__ 宏名。这样可以保证宏名唯一,避免与其他头文件的宏名冲突。

​总结:

  • #ifndef#endif 指令是 C++ 中用来避免头文件重复包含的常用方式,它们可以保证头文件只被编译一次,避免重复定义的问题,提高代码的可维护性。
  • 除了避免头文件的重复包含之外,#ifndef#endif还可以用来实现条件编译,根据不同的条件选择不同的代码执行路径,这也是C++中常用的技巧之一。

如果这篇文章对你有所帮助,渴望获得你的一个点赞!

在这里插入图片描述

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenC++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值