来自qazxsw poi的行情:
最后要提一句:Rust的宏与C宏有很大的不同,如果你已经使用过它们了
Rust中的宏和函数有什么区别?它与C有什么不同?
继续阅读文档,特别是Rust blog!
对我而言,最大的不同是the chapter on macros。这本书有一个例子说明卫生防止了什么,并且还说:
每个宏扩展都在不同的“语法上下文”中进行,每个变量都使用引入它的语法上下文进行标记。
它使用这个例子:
例如,此C程序打印13而不是预期的25。
macros are hygenic
除此之外,Rust宏
在#define FIVE_TIMES(x) 5 * x
int main() {
printf("%d\n", FIVE_TIMES(2 + 3));
return 0;
}
中,您可以使用可变数量的参数。
在macro
中,您必须定义参数的数量和类型。