假设功能f1
调用f2
,f2
电话f3
,最后调用f5
,他们每个人传递一个参数“ARG”到被叫方,如下所示:C/C++,使用全局或通过argurment之间选择
f1(arg, ...) -> f2(arg, ...) -> f3(arg, ...) -> f4(arg, ...) -> f5(arg, ...)
的另一种方法,使用全局 “ARG”,没有必要通过论证 “ARG”,如:
int arg = 5;
f1(...) -> f2(...) -> f3(...) -> f4(...) -> f5(...)
哪一个更好?或者有什么方法更有用?
在网上搜索“全局变量是邪恶的”。 –
如果函数2-5仅在被前一个函数调用时使用,并且所有函数都不在'f1'之外使用,那么只需要第一个函数接受参数并在'f1'内创建其他4个函数作为匿名函数,这将能够看到范围为'f1()'的变量。但是,如果'f2'到'f5'被用在从'f1'的这个链中调用的上下文之外,那么他们似乎必须接受一个参数,对吧......? – nhgrif