This question already has an answer here:
Include guard and #pragma once in the same header file
(1个答案)
去年关闭。
我在C++标准库的某些头文件(例如istream)中看到
我正在使用MS Visual Studio 2010 Express。
例如:
为什么两者都用?
(1个答案)
去年关闭。
我在C++标准库的某些头文件(例如istream)中看到
#pragma once
和#ifndef/#define
都包含防护。我正在使用MS Visual Studio 2010 Express。
例如:
#pragma once
#ifndef _ISTREAM_
#define _ISTREAM_
.
.
.
为什么两者都用?
最佳答案
如果支持一次#pragma,则可缩短编译时间,因为编译器仅包含一次文件。 #ifndef仍然再次包含该文件,但是中间的所有文本都被预处理器剥离了(因为#define已经被较早地求值,因此已被定义)。
讨论中here
关于c++ - 一次使用#pragma和#ifndef在同一文件中包含防护,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45241063/
10-13 07:05