0
点赞
收藏
分享

微信扫一扫

#ifndef/#define/#endif(包含保护Include Guard)

#ifndef是C/C++中的一个预处理指令。代表“如果没有定义(If not defined  )”,它通常用于条件编译。主要目的是防止头文件被多次包含,从而避免重复定义的问题。

基本用法

//macros.h文件
#include <stdio.h>
#ifndef MACROS_H//检查MACEOS_H是否被定义
#define MACROS_H//如果未被定义,则定义MACEOS_H
  void myFunction();//头文件的内容,例如函数声明,宏定义,结构体定义等
  //#define ADDDD(x,y)((x)+(y))宏定义
#endif//结束条件编译块;

检查名MACEOS_H的宏是否被定义,如果未被定义,则继续执行后面的代码。

定义MACEOS_H宏。定义之后就意味在后续的编译过程中,如果再次遇到MACEOS_H,它将被视为已定义,后面的代码将不会被包含。

当多个源文件包含同一个头文件时使用#ifndef可以确保头文件的内容只会被编译一次,避免重复定义的错误。

使用#ifndef/#define/#endif是C语言中管理头文件包含的标准做法。

在源文件中使用这个宏时

//test.c源文件
#include "macros.h"//包含这个头文件: #include"文件名"


举报

相关推荐

0 条评论