从 #define 更改为 const(大写?
Changing from #define to const (uppercase?)
我正在对一些代码进行一些重构,我看到#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
。