1

做这些事情不好吗?:

“只为调用其他函数而制作函数是不是很糟糕?”

void pyRunScript(&o_Log, &o_Dict, ModuleName, *pDictArgs = NULL)
{
    pyRunScript(o_Log, o_Dict, ModuleName, "run", pDictArgs);
}

void pyRunScript(&o_Log, &o_Dict, ModuleName, FuncName, *pDictArgs = NULL)
{ ... }

注意:由于stackoverflow中的框宽度有限而省略了数据类型
&o_意味着该变量仅用于输出。

4

6 回答 6

4

有一个函数只调用另一个函数并提供更多信息是不是很糟糕?一点也不,如果它消除了重复,这是实现这一目标的简单方法。

于 2013-03-12T14:07:57.587 回答
2

不,一般来说,制作只调用其他函数的函数也不错,例如“呼叫中心函数”,请参阅 Steve McConnell,Code Complete。

于 2013-03-12T14:08:01.490 回答
1

拥有一个只使用默认值调用不同函数的函数并不是一个坏习惯。但是如果不添加最后一个参数,则特别使用相同的名称是一种不好的做法。pDictArgs如果假设是 char* ,它不仅会让用户感到困惑,也会让编译器感到困惑

我只想给函数名称一个“扭曲”以使其更容易区分:

void pyRunNamedScript(&o_Log, &o_Dict, ModuleName, FuncName, *pDictArgs = NULL)
{ ... }
于 2013-03-12T14:08:46.647 回答
1

这种事情实际上是一种很好的代码复用方式,不同的功能之间只有很小的区别。

非常好。

编辑:大多数现代编译器将内联这些类型的“包装函数”,这样它就不会增加任何开销。出于这个原因,将包装函数放在带有内联的头文件中通常是有意义的,以便编译器能够做到这一点。

于 2013-03-12T14:09:12.873 回答
1

让一个函数只调用另一个函数也不错。但是在这种情况下,我可能会这样做:

void pyRunScript(&o_Log, &o_Dict, ModuleName, FuncName = "run", *pDictArgs = NULL)
于 2013-03-12T14:09:42.330 回答
0

不是非法的,但总是会提供一些额外的开销:这是调用函数的成本,如果合适的话,最好通过尝试内联函数来避免这种情况

于 2013-03-12T14:51:45.370 回答