我正在编写一个函数,它有几个带有许多数值的常量数组。这些数组包含多项式方程的系数,不会改变。现在我在同一个函数(.cpp文件)中定义了数组,例如:
double coefficients[7] = {
271.155123745294,
-2.03521046106355,
8.79645207223641E-03,
-1.38958348112727E-05,
-2.048607610462E-08,
9.372391616E-11,
-8.397701E-14
};
查看我的代码我对代码的“外观”不满意,并问自己是否有更好的解决方案(例如,将一堆常量值放在单独的文件中或标题中)。这不是一个真正的问题,但在我看来,读者会从算法中分心。
答案 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。