Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我是否应该为永久常量值(如足球运动员计数)创建一个全局常量变量?_C++_Coding Style_Refactoring_Constants - Fatal编程技术网

C++ 我是否应该为永久常量值(如足球运动员计数)创建一个全局常量变量?

C++ 我是否应该为永久常量值(如足球运动员计数)创建一个全局常量变量?,c++,coding-style,refactoring,constants,C++,Coding Style,Refactoring,Constants,我正在编写一个足球模拟器,我需要在许多源文件中多次编写number11 我遇到了两种可能的在continue中编写代码的方法: 写11很容易,因为它永远不会改变,也不会在意我自己;或者 使足球运动员的常数计数=11 如果是这样的话,我应该在一些头文件(可能是constants.h)中提取这个常量,并且包括这个头文件,我需要11的任何源文件 我现在该怎么办 换句话说,我为什么不写11。这有什么问题吗? (请回答所有永久不变值的一般问题)如果许多模块使用此足球运动员计数,则最好制作一个单独的头文

我正在编写一个足球模拟器,我需要在许多源文件中多次编写number
11

我遇到了两种可能的在continue中编写代码的方法:

  • 11
    很容易,因为它永远不会改变,也不会在意我自己;或者

  • 使足球运动员的常数计数=11

    如果是这样的话,我应该在一些头文件(可能是
    constants.h
    )中提取这个常量,并且
    包括
    这个头文件,我需要
    11
    的任何源文件

  • 我现在该怎么办

    换句话说,我为什么不写
    11
    。这有什么问题吗?


    (请回答所有永久不变值的一般问题)

    如果许多模块使用此足球运动员计数,则最好制作一个单独的头文件,将所有常量放在其中


    通过这种方式,const的使用被本地化到一个地方,当然它有助于维护。

    通常,您可能应该使用一个常量值,即使它看起来是多余的,以增加代码的可读性/灵活性。我个人建议将其放在头文件中,以便将值保存在单个位置

    您可以这样做(使其在标准名称空间中成为全局的)。只是个人喜好的问题。但是如果:不要使用其他东西可能需要的名称。为什么不使用11:这样其他阅读代码的程序员(或者你,在将来的某个时候,当你忘记了你对每行的想法后)就可以快速地理解11的含义,而不用多想。一般来说,使用“幻数”是不好的,因为通常很难知道它们的意思。但这并没有那么明确,因为对于特定的项目,数字可能是显而易见的。例如,在纸牌游戏中有数字52,在足球游戏中有数字11,那么它们的意思就很明显了,它们永远不会改变。但是对于其他可能不明显的数字,或者可能会根据需求而变化的数字,使用符号名更好。您不需要使用这么长的变量名,NPlayer就可以做到这一点。通常的原因是维护,以防以后更改。这是一个不可能的风险。但是,后来,当你遇到NPlayer时,你知道这是怎么回事,而对于11,你不能确定:它可能是游戏模式的一个特殊参数,玩家姓名的最大长度,你想要保持的高分数,等等……谢谢大家。我明白了:)