【发布时间】:2013-12-19 12:48:02
【问题描述】:
我不确定在这里问这个是否合适。我担心内存分配,我不知道在哪里阅读。
我正在与自己争论是否应该为每个寻根函数声明局部变量,或者只使用每个函数每次调用都可以重用的全局变量。请注意,我不打算在这里使用递归。仅 (do-)while (或 for) 循环。
如果我也能得到足够的解释,我将不胜感激。
// [1]
// global(?) variables
// functions.cpp
#include <cmath>
#include "functions.h"
using namespace std;
double guess1; // upper
double guess2; // lower
double root;
double prevGuess;
double sigFigs;
double minSigFigs;
double newt_rhap(params)
{
// do stuff
}
double bisection(params)
{
// do stuff
}
================
// [2]
// local variables
// functions.cpp
#include <cmath>
#include "functions.h"
using namespace std;
double newt_rhap(x,y,z,f(),f_prime())
{
double guess = x;
double sigFigs = y;
double minSigFigs = z;
// do stuff
}
double false_position(w,x,y,z,a())
{
double xr;
double upper = w;
double lower = x;
double xprev;
double fxr;
double fxu;
double fxl;
double sigFigs = y;
double minSigFigs = z;
// do stuff
}
【问题讨论】:
-
不要使用全局变量...这很愚蠢。在每个函数中声明变量。
-
会不会是个大问题?
-
No.... 如果你使用全局变量会更成问题
-
我建议明确地使您的函数指针参数成为实际指针。这是绝大多数人习惯看到的(如果“数组”也发生这种情况)。
-
@solitude,不,它们在用作参数时被编译器解释为函数指针,但正如我所说,几乎每个人都明确指出它们。
标签: c++