函数指针使用示例(参考Linux-内核代码)
本文有xhz1234(徐洪志)编写,转载请注明出处。
http://blog.csdn.net/xhz1234/article/details/36635083
作者:徐洪志
最近阅读Linux-内核代码,发现很多地方使用了函数指针,遂自己写一个示例程序,以供参阅:
#include <stdlib.h> #include <stdio.h> #define ADDONE 0 #define MINUSONE 1 #define S_OK 0 #define S_ERR -1 typedef int(*dir_fn)(int *data); //函数指针 //实际函数1 int add_func(int *data) { (*data)++; return S_OK; } //实际函数2 int minus_func(int *data) { (*data)--; return S_OK; } //核心:根据参数cmd,获取对应的func dir_fn lookup_ctl(int cmd) { dir_fn fn = NULL; switch(cmd) { case ADDONE: fn = add_func; break; case MINUSONE: fn = minus_func; break; default: break; } return fn; } int main(void) { int data = 100; int cmd = -1; dir_fn fn = NULL; printf("Input the cmd<0 add, 1 minus>\n"); scanf("%d", &cmd); fn = lookup_ctl(cmd); fn(&data); printf("Result is: %d\n", data); return 0; }
本文有xhz123(徐洪志)编写,转载请注明出处。
作者:徐洪志
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。