我一直在查看 Boost 库源代码,我注意到通常有单磅符号没有附加任何预处理器指令。我通读了 GCC 预处理器手册和规范指南,但找不到任何相关信息。
(1) #ifndef BOOST_CONFIG_HPP
(2) # include <boost/config.hpp>
(3) #endif
(4) #
(5) #if defined(BOOST_HAS_PRAGMA_ONCE)
(6) # pragma once
(7) #endif
在第 4 行,井号之后没有任何内容。这有什么影响?它是否在 C 预处理器 (CPP) 规范中定义?
由于 Boost 是一个跨平台库,我认为任何 CPP 都应该正确解析它。在整个代码中使用随机的井号/哈希符号会产生什么影响/副作用?
原文由 callyalater 发布,翻译遵循 CC BY-SA 4.0 许可协议
一行上的
#
完全没有效果。我认为它被用于审美价值。C标准说:
C++ 标准也说了同样的话: