#pragma once的使用

一下内容摘抄自https://zh.wikipedia.org/wiki/Pragma_once

在C和C++编程语言中,#pragma once是一个非标准但是被广泛支持的前置处理符号,会让所在的文件在一个单独的编译中只被包含一次。以此方式,#pragma once提供类似include防范的目的,但是拥有较少的代码且能避免名称的碰撞。

使用#pragma once代替include防范将加快编译速度,因为这是一种高端的机制;编译器会自动比对文件名称或inode而不需要在头文件去判断#ifndef#endif

另一方面,部分编译器,例如GCC、clang等,也包含特别的代码来识别和有效率的管理include防范。因此使用#pragma once并不会得到明显的加速。

此外,因为编译器自己必须承担管理#pragma once,它不必定义新的指令名称,例如在include防范文章示例的H_GRANDFATHER。这能排除名称碰撞的风险,意思就是至少第一次包含头文件不会再有错。

你可能感兴趣的:(#pragma once的使用)