gpt4 book ai didi

c++ - 在 C/C++ 预处理器中单独一行的单个井号/井号 (#) 的目的是什么?

转载 作者:IT老高 更新时间:2023-10-28 11:31:42 29 4
gpt4 key购买 nike

我一直在看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 都应该正确解析它。在整个代码中使用随机的井号/哈希符号会产生什么影响/副作用?

最佳答案

一行中的 # 本身没有任何作用。我认为它被用于审美值(value)。

C 标准说:

6.10.7 Null directive

Semantics

A preprocessing directive of the form

# new-line

has no effect.

C++ 标准也是这么说的:

16.7 Null directive [cpp.null]

A preprocessing directive of the form

# new-line

has no effect.

关于c++ - 在 C/C++ 预处理器中单独一行的单个井号/井号 (#) 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35207515/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com