C++ 多文件编程中,处理“多次 #include 导致重复引入”问题的方式有以下 3 种。再次执行该项目会发现,其可以正常执行。但考虑到 C 和 C++ 都支持宏定义,所以项目中使用 #ifndef 规避可能出现的“头文件重复引入”问题,不会影响项目的可移植性。和 ifndef 相比,#pragma once 不涉及宏定义,当编译器遇到它时就会立刻知道当前文件只引入一次,所以效率很高。目前,几乎所有常见的编译器都支持 #pragma once 指令,甚至于 Visual Studio 2017 新建头文件时就会自带该指令。可以这么说,在 C/C++ 中,#pragma once 是一个非标准但却逐渐被很多编译器支持的指令。除此之外,#pragma once 只能作用于某个具体的文件,而无法向 #ifndef 那样仅作用于指定的一段代码。

c++ 防止头文件重复引入的三种方法

c++ 防止头文件重复引入的三种方法

c++ 防止头文件重复引入的三种方法

c++ 防止头文件重复引入的三种方法