dub*_*nde 18 c++ boost pragma header-files c-preprocessor
刚见过这里面 <boost/asio.hpp>
#ifndef BOOST_ASIO_HPP
#define BOOST_ASIO_HPP
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
/// ....
#endif // BOOST_ASIO_HPP
Run Code Online (Sandbox Code Playgroud)
无视_MSC_VER预处理器检查,#pragma once在这种情况下有什么好处?在所有情况下以及在所有平台上,预处理器头部保护是否都不能确保头部内容只有included一次?
Aoi*_*asu 21
#pragma once指定编译源代码文件时编译器仅包含(打开)一次文件.这可以减少构建时间,因为编译器不会在第一个#include模块之后打开和读取文件.
如果不这样做#pragma once,则每次需要时都会打开该文件#ifndef BOOST_ASIO_HPP,如果已定义,编译器将停止解析它.