gxqcn 发表于 2025-10-3 17:43:22

在 C++ 中,如何定义一个单行注释宏

希望的效果如下:#define COMMENT //

// 这不会工作,因为宏展开发生在注释处理之前
COMMENT 这行代码不会被注释掉
注意:上面是“错误的尝试(不会工作)”

wayne 发表于 2025-10-3 18:13:52

这个需求很诡异. 不过可以试试这种
#define COMMENT if(false)

gxqcn 发表于 2025-10-3 18:53:09

上面的勉强可用在 .cpp 文件里,无法用在 .h 文件做声明屏蔽

gxqcn 发表于 2025-10-3 19:09:18

#define SCAN( x )   x
#define COMMENT   SCAN( / ) ## SCAN( / )

COMMENT 这行代码将会被注释掉
改写了下,似乎可以达到效果。

大家可以测试一下

wayne 发表于 2025-10-4 16:11:34

我在gcc/ubuntu, clang/macOS环境下都编译失败

Ickiverar 发表于 2025-10-5 19:25:25

用预构建命令吧。sed一下。
页: [1]
查看完整版本: 在 C++ 中,如何定义一个单行注释宏