【问题标题】:What does # stand for in c++ code? [duplicate]# 在 C++ 代码中代表什么? [复制]
【发布时间】:2018-04-24 12:20:50
【问题描述】:

后面的sn-p中s前面的#是什么意思?我不是指定义之前的 # 或用于预处理器指令的那些。

// Quote a given token stream to turn it into a string.
#define DEV_QUOTED_HELPER(s) #s
#define DEV_QUOTED(s) DEV_QUOTED_HELPER(s)

这个问题不同于“字符串化 - 它是如何工作的?”因为有这个问题的人不知道“字符串化”这个词。它不同于“什么是 C 中的 '#' 运算符?”因为它也出现在 C++ 代码中,在这种情况下,甚至 SO 也无法在类似问题列表中显示这个问题(它在 SQL、python 等中显示了其他可能的问题)。

【问题讨论】:

  • 查找 stringizing 宏操作符。 @MichaelO。没有。
  • 我猜应该是标签c,既不是c++也不是c++11,这是c预处理器指令
  • 好的@mpromonet。我在主要是 c++ 代码库中看到过这个 sn-p。

标签: c++ c c-preprocessor


【解决方案1】:

取自https://en.wikipedia.org/wiki/C_preprocessor

# 运算符(称为“字符串化运算符”)将一个 标记为字符串,适当地转义任何引号或反斜杠。

例子:

#define str(s) #s

str(p = "foo\n";) // outputs "p = \"foo\\n\";"
str(\n)           // outputs "\n"

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2013-05-15
    • 1970-01-01
    • 2012-11-04
    • 2017-08-21
    • 1970-01-01
    相关资源
    最近更新 更多