使用常量代替数字 - c

Using constants instead of numbers - c

我目前正在学习 c,我们的老师告诉我们永远不要在代码中使用纯数字,而应始终使用常量。

例如:

不要这样做:

if (age >= 18) {...}

这样做:

#define MIN_AGE 18
// ...
if (age >= MIN_AGE) {...}

他们没有告诉我们为什么要这样做,我很困惑。这实际上是推荐的吗?为什么?

这样做的目的是给变量命名。为什么18特别?如果我们谈论在美国买酒,我们可能有一个宏:

#define MIN_AGE_TO_PURCHASE_ALCOHOL 18

对于程序员来说,这个字符串比 18 更容易理解。特别是当你在 10 年后继续支持这个代码时。

使用变量的原因是它更易于维护和可视化。在没有显示变量的代码中,直接在 if 语句中更改值不会有太大问题,因为您只使用它一次。

if (age >= 18) {...}

因此,如果您需要将值更改为 17(作为示例),您可以这样做:

if (age >= 17) {...}

但想象一下,如果您的代码中有更多 if 语句,如下例所示:

if (age >= 18) {...}
if (age >= 18) {...}
if (age >= 18) {...}

您需要在每个语句中逐一更改它。使用变量会容易得多,因为您只需更改分配给变量的值即可:

#define MIN_AGE 17

所有其他 MIN_AGE 变量已经正确:

if (age >= MIN_AGE) {...}
if (age >= MIN_AGE) {...}
if (age >= MIN_AGE) {...}

另外,MIN_AGE的意思更容易理解,代码会更好读懂。

对不起,顺便说一句,我的英语不好!