说我有一个函数f(a, b, c)
。是否可以创建函数指针g
和h
,这样当您使用g
和h
时,它们会为其中一个参数使用预定值?
例如(*g)(b, c)
相当于f(1, b, c)
,而(*h)(b, c)
相当于调用f(2, b, c)
。
我之所以这样做是因为我正在调用一个函数,我可以获取一个指针(通过dlsym),这个函数的行为完全不同,这取决于第一个参数是什么(以至于它们不应该'真的被称为同一件事)。更重要的是,在主程序中使用的函数指针变量通常只能采用两个参数,因为这是一个特殊情况,其中导入的函数有三个(但实际上只有两个是必需的,一个本质上是一个设置参数)。 p>
感谢。
答案 0 :(得分:3)
如果您已将函数g指定为
,我不明白为什么您可以这样做void gfunc(int b, int c) {
f (1, b, c);
}
g = &gfunc;
在C ++中执行此操作的更好方法可能是使用仿函数。