69,381
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
typedef void (callback_t)(void *);
// typedef void (*callback_t)(void *); // 这两个回调函数定义有什么区别
void repeat(callback_t f, void *para) {
f(para);
f(para);
f(para);
}
void say_hello(void *str) {
printf("Hello %s\n", (char *)str);
}
int main() {
char a[] = "aaaaaaaaaa";
printf("%p %p\n", a, &a);
callback_t *p = say_hello;
repeat(say_hello, "Guys");
repeat(&say_hello, "&&&&Guys");
printf("%p %p\n", say_hello, &say_hello);
repeat(p , "ppppGuys");
return 0;
}
/**
0xbfa3fb71 0xbfa3fb71
Hello Guys
Hello Guys
Hello Guys
Hello &&&&Guys
Hello &&&&Guys
Hello &&&&Guys
0x804845d 0x804845d
Hello ppppGuys
Hello ppppGuys
Hello ppppGuys
*///