预编译语句ifndef入门解释和使用
预编译语句ifndef 入门解释。包括工作方式以及用法。
预处理指令 指的就是代码编译器将代码编译成可以执行二进制指令前,不是盲目的编译,用户可以给他一些指令告诉编译器如何编译,也就是预处理指令。
预编译语句ifndef
#ifndef
是 C 和 C++ 语言中的一个预处理指令,它的作用是: “如果没有定义某个宏,就执行下面的代码。”它通常和 #define
、#endif
一起使用,构成一个头文件保护(Include Guard)的结构,防止头文件被多次包含,导致重复定义的错误。
// 这里是头文件的内容
void sayHello();
// MY_HEADER_H
它是怎么工作的?
当编译器第一次遇到这个文件时:
MY_HEADER_H
还没有被定义 → 进入代码块。定义宏
MY_HEADER_H
。继续处理文件内容。
如果这个文件后来又被包含一次:
MY_HEADER_H
已经被定义 → 编译器跳过整个代码块,避免重复定义。
总结一下
指令 | 含义 |
---|---|
#ifndef MACRO | 如果没有定义这个宏,就执行下面的代码 |
#define MACRO | 定义一个宏 |
#endif | 结束这个条件预处理块 |
这种写法常用于头文件保护,防止多次包含造成编译错误。
加入对话