void traverse(void (*visit)(link))的参数是visit,visit是一个指针,这个指针指向一个无返回值(void),有一个link类型参数的函数。
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了三元免费建站欢迎大家使用!
显然print_item就是这样一个函数。
traverse(print_item);把这个函数的地址传给tranverse的参数visit.注意函数名代表函数的入口地址,这个就好理解。
用指针,例如:
#include stdio.h
#include stdlib.h
#include string.h
void abc(char *str){
strcpy(str,"string from abc\0");
};
void def(char *str){
printf("print in def: %s\n",str);
};
main()
{
char str[30];
abc(str[0]);
def(str[0]);
exit(0);
}
// abc()中给值,def()印出。
//直接转发
#include stdio.h
__declspec(naked)void printf1(const char * _Format, ...)
{
__asm
{
push printf
ret
}
}
int _tmain(int argc, _TCHAR* argv[])
{
printf1("%d",1);
printf1("%d %d",1,1);
getchar();
return 0;
}