从 #define 更改为 const(大写?

Changing from #define to const (uppercase?)

本文关键字:大写 const #define      更新时间:2023-10-16

我正在对一些代码进行一些重构,我看到#define使用了很多来创建常量。从我读到的内容中,我知道具有正确类型的常量会更好。

但是命名风格呢?我应该保留const的大写还是应该专门用于宏?

#define MINUTE_LEN 6
#define SECOND_LEN 6
#define MILISECOND_LEN 11

应该是:

const int MINUTE_LEN = 6;
const int SECOND_LEN = 6;
const int MILISECOND_LEN = 11;

或:

const int minuteLen = 6;
const int secondLen = 6;
const int milisecondLen = 11;

推荐什么?我觉得大写有助于识别它是一个常量。

编辑:只要它可能是基于意见的,就可能有客观原因支持某种风格或其他风格。正如Mark Ransom指出的那样,也没有规则说宏必须是大写的。但是有一个事实上的约定,即对宏使用大写字母,以避免将它们与变量名称混合(无法更早检测到并导致代码损坏)。

这取决于您要采用的样式,但要保持一致。

通常,所有大写字母都用于宏,因此您可以选择Pascal Case/UpperCamelCase。

作为旁注,如果您知道该值在编译时不会更改,并且您可以使用>= C++ 11 进行编译,那么您绝对应该尽可能使用 constexpr