定义一个函数指针类型。
比如你有三个函数:
void hello(void) { printf("你好!"); }
void bye(void) { printf("再见!"); }
void ok(void) { printf("好的!"); } typdef void (*funcptr)(void);
这样就构造了一个通用的函数
你用的时候可以这样:
void speak(int id)
{
funcptr words[3] = {&hello, &bye, &ok};
funcptr fun = words[id];
(*fun)();
} 这样的话,如果speak(0)就会显示“你好!”
speak(1)就会显示“再见!”
speak(2)就会显示“好的!” 用于处理参数和返回值的形式都一样,但是功能不确定的一组函数,可以使用函数指针。 比如算术运算符,加、减、乘、除,都可以用typedef int (*calc)(int,int)代表,等等
相关文章
- 03-17传递给构造函数的Python函数引用变为c_void_p数据类型
- 03-17EntityFramework 找不到方法:“Void System.Data.Entity.DbModelBuilder.RegisterEntityType
- 03-17typedef void (*funcptr)(void)
- 03-17如何模拟影响对象的void返回方法
- 03-17android – 如何在void方法上执行Nothing()?
- 03-17如何使用Mockito使mock变为void方法
- 03-17void 0与undefined
- 03-17VC++常见错误原因解析--error LNK2019: 无法解析的外部符号 "public: void __thiscall
- 03-17[已解决]error: cannot convert `int*' to `int**' for argument `2' to `void print_f(int, i
- 03-17const void *a 与 void *const a 的差别