【发布时间】:2013-10-28 23:26:50
【问题描述】:
我的背景和直觉告诉我,我应该始终通过要求这样的参数为函数创建一个更紧密、更明确的接口:
bool someFunc(int param1, int param2, char param3, float param4) {
...
}
或需要一个对象(结构或类),例如:
class someObject {
...
int p1;
int p2;
char c1;
float p4;
}
我的老板告诉我应该使用类似的东西:
bool someFunc(void *params[], int size) {
...
}
因为它创建了更多可扩展性(您可以通过这种方式迭代参数)和更快的代码。
我只对提高自己的能力感兴趣,但我的直觉与这种方法背道而驰。他说的对吗?
【问题讨论】:
-
你不能迭代
params。你的意思是写bool someFunc(void* params[])或类似的东西(你还需要知道参数的数量)?如果是这样,如果它比按值传递内置类型更快,我会感到相当惊讶。 -
在programmers.stackexchange.com 发布这个问题你可能会得到更多关注:-)
-
@DietmarKühl - 是的,我的意思是,谢谢。已更新以反映。
-
Dirtmar 的 cmets 排名第二。您不能取消引用
void*而不将其转换回真实类型。另外,输入参数是一个没有长度的指针数组,所以你也不知道数组的大小。 -
@tonga - 你说得对,他的实现也需要参数的数量。已更新以反映。
标签: c++ performance