回调函数的使用方法:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <pthread.h>
pthread_mutex_t mutex;
pthread_cond_t cond;
typedef void (*callback_one)(void*);
typedef int (*callback_two)(void *,void *);
void signal_alarm(int sig)
{
pthread_mutex_lock(&mutex);
pthread_cond_wait(&cond,&mutex);
printf("I in sigane \r\n");
pthread_mutex_unlock(&mutex);
}
void print(callback_one f,void* para)
{
signal(SIGALRM,signal_alarm);
alarm(8);
f(para);
}
int main()
{
int a=4;
int b=6;
int i;
char buf[8];
char temp;
FILE *fp=NULL;
pthread_mutex_init(&mutex,NULL);
pthread_cond_init(&cond,NULL);
printf("In callback !\r\n");
print(say_hello,"fdsafd");
//printf("Out callback !\r\n");
pthread_mutex_lock(&mutex);
pthread_mutex_unlock(&mutex);
pthread_cond_signal(&cond);
printf("Out callback !\r\n");
sleep(10);
return 0;
}
总感觉回调函数在实际应用中没有多大的用途,感觉和顺序执行没有什么区别,在下面的几种情况使用回调还是可以很容易发现回调的使用价值的:
1、在必须给别的函数提供接口的时候
2、在需要定时操作,或者条件操作的时候(上面的例子包含了这两种情况的用法)