前言:抛砖引玉,之前一段时间看Linux驱动,后面项目推进也用到了许多包含回调函数的模块,写一个简单的测试用例,希望和我当时一样的懵懵懂懂的人有个直观的认识,不要一上来就被Linux吓死。
Language:c;
IDE:code::block;
#include <stdio.h>
#include <stdlib.h>
//定义回调函数
typedef int (* module_callback_t)(int value);
typedef struct _CALLBACK_TYPE
{
int count;
module_callback_t call_back;
}CALLBACK_TYPE;
static int num_handle(int lpData)
{
switch(lpData)
{
case 0:
printf("\r\nnum:0x%x\r\n",lpData);
break;
case 1:
printf("\r\nnum:0x%x\r\n",lpData);
break;
case 2:
printf("\r\nnum:%d\r\n",911);
break;
default:
printf("\r\nnum:%d\r\n",10086);
break;
}
return 0;
}
CALLBACK_TYPE call_log;
static int num_handle_init(void)
{
call_log.count = 1001;
call_log.call_back = num_handle;
return 0;
}
int main()
{
int ret = 0;
num_handle_init();
scanf("%d",&ret);
printf("Input num: %d\r\n",ret);
printf("call back run!\n");
return call_log.call_back(ret);
}
Date:11-19-2013
Author:David Lin
E-mail:linpeng1577@gmail.com