gpt4 book ai didi

c - 函数指针有什么用,我将如何使用它们?

转载 作者:太空狗 更新时间:2023-10-29 16:34:33 24 4
gpt4 key购买 nike

我知道我可以对函数使用指针。

有人可以解释为什么要使用它们,以及如何使用它们吗?简短的示例代码对我很有帮助。

最佳答案

一个简单的案例是这样的:根据您的业务逻辑,您有一个操作(函数)数组。您有一个散列函数,可以将输入问题减少到业务逻辑函数之一。干净的代码会有一个函数指针数组,您的程序将从输入中推导出该数组的索引并调用它。

这是一个示例代码:

typedef void (*fn)(void) FNTYPE;
FNTYPE fn_arr[5];

fn_arr[0] = fun1; // fun1 is previously defined
fn_arr[1] = fun2;
...

void callMyFun(string inp) {
int idx = decideWhichFun(inp); // returns an int between 0 and 4
fn_arr[idx]();
}

当然,回调是最常见的用法。示例代码如下:

void doLengthyOperation(string inp, void (*callback)(string status)) {
// do the lengthy task
callback("finished");
}

void fnAfterLengthyTask(string status) {
cout << status << endl;
}

int main() {
doLengthyOperation(someinput, fnAfterLengthyTask);
}

关于c - 函数指针有什么用,我将如何使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com