我一直在看Boost http://en.wikipedia.org/wiki/Boost_%28C%2B%2B_libraries%29库源代码,我注意到通常有单井号,没有附加任何预处理器指令。我通读了 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 都应该正确解析它。在整个代码中使用随机的井号/井号会产生什么影响/副作用?
A #
单独放在一条线上根本没有任何效果。我认为它是为了审美价值而使用的。
C 标准说:
6.10.7 空指令
语义学
表单的预处理指令
# new-line
没有影响。
C++ 标准也说了同样的话:
16.7 空指令 [cpp.null]
表单的预处理指令
# new-line
没有影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)