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

时间:2017-01-20 22:09:31

标签: c++

我正在对某些代码进行一些重构,我看到#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指出的那样,没有规则说宏也需要大写。但是有一个事实上的约定为宏使用大写,以避免将它们与变量名混合(之前无法检测到并导致代码损坏)。

1 个答案:

答案 0 :(得分:1)

这取决于你想采用什么样的风格,但要保持一致。

通常,所有大写都用于宏,所以你可以选择Pascal Case / UpperCamelCase。

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