【发布时间】:2014-11-08 19:00:03
【问题描述】:
我正在编写一个足球模拟器,我需要在许多源文件中多次写入数字11。
我在 continue 中遇到了两种可能的编写代码的方式:
-
轻松写
11,因为它永远不会改变,也不介意我自己;或者, -
制作
const int COUNT_OF_SOCCER_PLAYERS=11。如果是这样,我应该在一些头文件中提取这个常量(可能是
constants.h)和include这个头文件我需要的任何源文件11!
我现在该怎么办?
换句话说,我为什么不写11。这有什么问题?
(请回答所有永久常数值的一般问题)
【问题讨论】:
-
您可以这样做(使其在标准命名空间中成为全局)。只是个人喜好的问题。但是如果:不要使用其他事情可能需要的名称。
-
为什么不使用 11:以便其他阅读代码的程序员(或者您,在您忘记每一行的想法之后)快速理解 11 的含义,而不用想太多.
-
一般来说,使用“幻数”是不好的,因为通常很难知道它们的含义。但这并不像那样明确,因为对于特定程序,数字可能很明显。例如,在纸牌游戏中使用数字 52,或者在足球游戏中使用数字 11,那么它们的含义就很明显了,而且它们永远不会改变。但是对于其他可能不明显的数字,或者可能会根据要求而变化,那么使用符号名称会更好。
-
你不需要写这么长的变量名,NPLAYERS 就可以了。通常的原因是维护,以防以后发生变化。这是一个不可能的风险。不过后来遇到NPLAYERS你就知道是什么了想保留等等……
-
谢谢大家。我明白了:)
标签: c++ coding-style refactoring constants