我正在编写一个测试,以查看从流中读取时不同缓冲区大小的时间差异。与其在代码中的任何地方更改缓冲区大小,不如让一些预处理器为我做这件事,这样我只需要在一个地方更改值。
我正在考虑的一个例子是编写 C 宏define BUFFER 1024,并在创建数组时使用它来定义大小。
使用const以满足您的需要:
const BUFFER: usize = 512;
Run Code Online (Sandbox Code Playgroud)
然而,这不是预处理器:正如 underscore_d 的评论所说,预处理器的使用是一种非常古老的机制。它已在 Rust 中替换为:
const 在文字值的情况下;您可以将 Rust 的const关键字理解为“在编译时评估”。在编译时评估的(可能)传入函数const也将被标记为。
此外,即使在 C 中,使用预处理器创建编译时常量也不是最佳实践。