macros - 有没有办法让 Rust 宏像在 C 中一样充当文本替换?

标签 macros rust preprocessor

在 C 中,如果你愿意,你可以:

#define    do     {
#define    end    }

// ...

if (foo == bar) do
    foo += 5;
    bar /= foo;
end

有没有办法在 Rust 中做这样的事情?

最佳答案

没有(谢天谢地)。 Rust 宏必须始终展开为完整的 AST 节点。

如果您需要文本替换,请使用适合该工作的工具,例如sedawkm4、C 预处理器等。这可能由构建脚本驱动。

关于macros - 有没有办法让 Rust 宏像在 C 中一样充当文本替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48613240/

相关文章:

opengl - SDL中的静态流和目标纹理之间有什么区别?

struct - 更新类结构枚举变体中的字段

c - 是否可以从预处理器转换为数组?

linux - 这些 RPM 时间戳宏从哪里来?

generics - 将泛型参数与 impl 的另一个泛型参数匹配

c - 用宏包装函数(不重命名)C

c++ - 如何指定远程预处理器包含路径,如 192.0.2.17 ://usr/include

c++ - 根据是否定义了另一个宏来评估宏

c++ - CPP : avoiding macro expansion of a macro function parameter

macros - 方案:用于代码复制的宏或高阶函数?