在哪里放置一个常数数组?

时间:2016-07-09 19:04:41

标签: c++

我正在编写一个函数,它有几个带有许多数值的常量数组。这些数组包含多项式方程的系数,不会改变。现在我在同一个函数(.cpp文件)中定义了数组,例如:

    double coefficients[7] = {
        271.155123745294,
        -2.03521046106355,
        8.79645207223641E-03,
        -1.38958348112727E-05,
        -2.048607610462E-08,
        9.372391616E-11,
        -8.397701E-14
    };

查看我的代码我对代码的“外观”不满意,并问自己是否有更好的解决方案(例如,将一堆常量值放在单独的文件中或标题中)。这不是一个真正的问题,但在我看来,读者会从算法中分心。

4 个答案:

答案 0 :(得分:4)

您可以将常量放在他们自己的文件中,并#include将它们放在您需要的位置 - 这不是问题。

顺便说一句,你常量,但在你的例子中,你的数组不是const - 但如果你不打算改变它,可能就是这样。

答案 1 :(得分:3)

你可以

  • 将数组常量与函数一起放入命名空间(匿名命名空间可能已经足够了),

  • 将它们作为static常量放入全局命名空间,以及函数(注意:对static的使用,对于数据,不推荐使用)

  • 将它们放在单独的访问者函数中,可以是static

顺便提一下,请添加const

这也告诉编译器它们是不变的。

答案 2 :(得分:0)

除了以上答案之外,还有一件事:把它放在配置文件中。只有在编译时不需要它才能执行此操作,但是您可以更新常量而无需重新编译/重新编写代码。它仍然可以是const,因为您可以在静态初始化期间读取和解析配置文件。

答案 3 :(得分:0)

您应该使用<div ng-repeat="item in items" on-finish-render="ngRepeatFinished"> <div>{{item.name}}}<div> </div> 类型限定符作为双变量const

  

查看我的代码我对代码的“外观”感到不满意

是的,你是对的。它看起来不太好,有更好的方法可以做到。

如果您对变量使用了coefficients修饰符并将其置于函数定义之外,则可以获得更好的可读性。或者,您可以将static文件中的全局文件放在要访问它的函数定义之上。

是的,.cpp(使其成为separate accessor functions)也是一个好主意,正如其中一个答案所述。

如果它有助于代码可读性问题,您也可以尝试X Macro