我在研究最小二乘法的代码,发现以下几行:
static double one = 1.0;
static double p1 = 0.1;
static double p5 = 0.5;
...
我在想为什么有人会为1.0这样的微不足道的数值定义一个静态变量,我可以理解为pi这样的值定义一个静态变量,但是对于像1.0和0.1这样的微不足道的数值,这样做可能会使代码难以阅读,但是它可能有其他我不知道的好处。
所以,这些定义有什么原因吗?或者,如果它没有被用于现代代码,那么旧编译器是否有任何原因需要这样做?我知道我正在查看的代码是从FORTRAN翻译到C/C++的。在FORTRAN中有这样做的原因吗?
foo(&one)
这样的操作?我认为这可能与Fortran的参数传递规则有关。 - user2357112