void traverse(void (*visit)(link))的參數(shù)是visit,visit是一個指針,這個指針指向一個無返回值(void),有一個link類型參數(shù)的函數(shù)。
網站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網頁設計、網站建設、微信開發(fā)、小程序制作、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了三元免費建站歡迎大家使用!
顯然print_item就是這樣一個函數(shù)。
traverse(print_item);把這個函數(shù)的地址傳給tranverse的參數(shù)visit.注意函數(shù)名代表函數(shù)的入口地址,這個就好理解。
用指針,例如:
#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()印出。
//直接轉發(fā)
#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;
}