![]() |
1
7
用宏肯定不行。宏的名称必须是标识符。大括号字符是标点符号,而不是标识符。 |
![]() |
2
1
我看过这件事(不是说我赞同…)
例如
|
![]() |
3
1
|
![]() |
4
0
你不能改变编译器解释{}的方式。这是假设它们能够同步地确定代码是否正确和应该做什么。 如果你真的想这样做,我建议在“{”“我的宏;”上搜索并替换 |
![]() |
5
0
不是标准宏,不是。C标准(C11)对
具有
所以唯一可能的漏洞是
在任何情况下,它都不能很好地处理如下代码:
因为它很烦人地放置一个C语句,在那里不存在任何语句: 我认为如果你真的想这样做,你需要用一个更智能的预处理器(一个可以知道代码应该去哪里和哪里的处理器)来预处理你的文件,或者修改代码以显式地将它们放在应该放在的宏中,比如选择行为:
并将其用于:
|
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 4 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 4 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 4 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 4 月前 |