C++ 从#define更改为const(大写?)

C++ 从#define更改为const(大写?),c++,C++,我正在对一些代码进行重构,我看到#define在创建常量时使用了很多。从我所读的内容中,我了解到使用适当类型的常量会更好 但是命名风格呢?我应该保留常量的大写字母还是只用于宏 #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; 或: 推

我正在对一些代码进行重构,我看到
#define
在创建常量时使用了很多。从我所读的内容中,我了解到使用适当类型的常量会更好

但是命名风格呢?我应该保留
常量的大写字母还是只用于宏

#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;
或:

推荐什么?我觉得大写字母有助于确定它是一个常量


编辑:只要是基于意见的,就可能有客观原因支持某种风格或其他风格。正如MarkRansom指出的,也没有规定宏必须是大写的。但事实上有一个惯例,即对宏使用大写,以避免将它们与变量名混合在一起(之前无法检测到并导致代码中断)。

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

一般来说,宏都使用大写,所以可以选择Pascal Case/UpperCamelCase


作为一个旁注,如果你知道编译期间的值不会改变,你可以用C++=C++ 11编译,那么你应该尽可能地明确地使用<代码> CONTXPRP</代码>。也没有规定宏必须是大写的。我怀疑这个约定是为了确保宏不会无意中弄乱代码的其他部分,比如变量或函数名。这可能会有所帮助

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