![]() |
1
6
预处理器操作令牌,而不是严格的文本。所以从技术上讲,它不会在两者之间“放置一个空格”,但是除非您明确地告诉它将两个令牌与
参见: http://en.wikipedia.org/wiki/C_preprocessor#Token_concatenation |
![]() |
2
11
只有更老的预处理器没有插入额外的空间——请注意,原始条目是在20多年前的1988年提交的,当时C标准的1989年版本还没有标准化。你可以通过
|
![]() |
3
5
根据C99标准:
所以宏可以在令牌上工作,而白空间是可以预料的。
你可以使用标记粘贴操作符得到你想要的输出,
所以我不确定这是一个真正的答案。
您可以使用一组不那么难看的宏来获取所需的表达式-仍有一些空间,但这些空间不会干扰创建'
不过,我仍然怀疑这是你想要的。 |
![]() |
4
-1
是的,gcc正在插入额外的空格(通过检查stdout输出来验证
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |