用C++写一个用回调代替switch case代码段
时间: 2023-04-06 22:00:53 浏览: 215
好的,我可以回答这个问题。以下是一个使用回调代替 switch case 代码段的示例:
```c
#include <stdio.h>
typedef void (*callback_t)(void);
void case1(void) {
printf("执行 case 1\n");
}
void case2(void) {
printf("执行 case 2\n");
}
void case3(void) {
printf("执行 case 3\n");
}
void switch_case(int option, callback_t callbacks[]) {
callbacks[option - 1]();
}
int main() {
callback_t callbacks[] = {case1, case2, case3};
int option = 2;
switch_case(option, callbacks);
return 0;
}
```
在这个示例中,我们定义了三个回调函数 case1、case2 和 case3,它们分别对应 switch case 中的三个选项。然后我们定义了一个 switch_case 函数,它接受一个选项和一个回调函数数组作为参数,然后根据选项调用相应的回调函数。最后在 main 函数中,我们定义了一个选项为 2,然后调用 switch_case 函数,输出 "执行 case 2"。
希望这个示例能够帮助你理解如何使用回调代替 switch case 代码段。
阅读全文