17 March 2023

C++ 核心指南目录

“Avoid ALL_CAPS names”

理由

这类命名通常是宏。因此全大写的命名可能会不小心被宏替换掉。

例子

// somewhere in some header:
#define NE !=

// somewhere else in some other header:
enum Coord { N, NE, NW, S, SE, SW, E, W };

// somewhere third in some poor programmer's .cpp:
switch (direction) {
case N:
    // ...
case NE:
    // ...
// ...
}

注意

不要因为习惯用宏来定义常量而把常量写成全大写的。

标注所有使用全大写的命名。对于老的代码,可以接受全大写的宏。对于不是宏的全大写命名,需要特别标注。