对于数组长度来说,等同于C预处理器的#define是什么?

时间:2017-07-18 09:42:19

标签: rust

我正在编写一个测试,以便在从流中读取时查看不同缓冲区大小的时差。不要在代码中的任何地方更改缓冲区大小,让一些预处理器为我做这样做会很好,这样我只需要在一个地方更改值。

我想到的一个例子就是编写C宏.book-find-tenant-head { font-family: 'Roboto', 'Arial', 'sans-serif', 'Arial Narrow'; font-weight: bold; text-align: center; font-size: 16px; font-weight: bold; display: inline-block; vertical-align: middle; background-color: #337AB7; color: #FFFFFF; height: 40px; width: 30%; /* for demo */ line-height: 40px; position: relative; } .md-icon-button { position: absolute; right: 0; },以及在创建使用它来定义大小的数组时。

1 个答案:

答案 0 :(得分:3)

使用const满足您的需求:

const BUFFER: usize = 512;

但是,这是不是预处理器:正如underscore_d的注释所说,预处理器的使用是一个相当陈旧的机制。它已在Rust中替换为:

    如果是字面值,则为
  • const;
  • 宏,用于生成代码。

您可以将Rust的const关键字理解为"在编译时评估"。在编译时评估的(可能)传入函数也将标记为const

此外,即使在C,using the preprocessor to create a compile-time constant is not the best practice