"##"符号在C++中是什么意思
what does "##" symbol mean in C++
可能的重复:
C++中的宏扩展
C++中##运算符的用途是什么?它叫什么?
"##"符号在C++中是什么意思?我在阅读某人的源代码时偶然发现了它。更具体地说,这句话的意思是什么:
if ( v > ## = 0.1 * threshold )
在#define
宏中,##
是一个预处理器标记,表示将周围的两个东西粘贴在一起。因此,假设您在#define
中看到了这一点,这是一种非常奇怪的编写的方式
if ( v >= 0.1 * threshold )
如果你已经换了>
或=
,那就没那么奇怪了。只是一个有点奇怪的把戏。
这是一个预处理器令牌:
http://msdn.microsoft.com/en-us/library/09dwwt6y%28v=vs.80%29.aspx
它没有任何意义。这是一个错误。
您确定##
之后的代码不是注释,并且条件在下一行中没有正确继续吗?
或者,你粘贴的代码可能是构成宏定义的一行的一部分(但你没有显示任何证据,所以我不会在这里回答不同的问题(。
(你看到上下文在这样的问题中是如何重要的吗?(
##
告诉cpp
将其前后的令牌粘贴在一起。在这种情况下,我不得不猜测,出于某种原因,程序员需要避免使用实际的>=
令牌,可能是为了避免混淆其他预处理器(文档生成器或其他什么(,因此cpp
必须从其组件中组装>=
。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思