【发布时间】:2015-04-18 05:43:04
【问题描述】:
我了解 C 中的函数指针以及如何使用它们。但是,我不知道如何拥有一个可以指向具有不同返回类型的函数的函数指针。这可能吗?我知道如何使用函数指针数组,但我只找到了不同参数的示例,而不是返回类型。 (C: How can I use a single function pointer array for functions with variable parameter counts?) 如果数组更有意义,您能否提供一个示例说明如何执行此操作?
我有一个 switch/case 语句来选择将被指向的函数。然后将其作为参数传递给另一个函数。例如,我在下面列出了一些我需要实现的功能:
float* doFloatOps();
void goToSleep();
int* multiplication();
我需要有一个可以设置为指向其中任何一个的函数指针。我认为由于代码的设置,我只能有一个指针。如果您看到一种重组方法以使函数指向更容易,我将不胜感激。我的代码的当前结构是这样的:
switch(letter)
{
case 'a':
{
functionPointer = &doFloatOps;
}
case 'b':
{
functionPointer = &goToSleep;
}
.......
}
void carryOutFunctions(functionPointer)
{
while(....)
{
functionPointer;
}
}
请原谅以上任何与函数指针问题无关的语法错误。
所以我的主要问题是:如何才能拥有一组具有不同返回类型的函数指针,或者使一个函数指针指向具有不同返回类型的函数?
【问题讨论】:
-
您可能会考虑一个函数指针的联合,该联合具有每个不同返回类型的成员,然后为每种情况设置/使用适当的联合成员。不完全是你想要的,但这是我能想到的实现你想要的唯一方法。
标签: c pointers function-pointers