在最上面加一句這樣的定義
成都創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計,宜興網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:宜興等地區(qū)。宜興做網(wǎng)站價格咨詢:18982081108
typedef void*(*pFn)();
pFn可以這樣理解:首先pFn是一個指針,指針指向一個函數(shù)(或者說pFn是一個函數(shù)指針),此函數(shù)返回一個無類跡辯型的指針。最終定義的變量及函數(shù)都是指針罷了,不過是指針的類型不同。所以在編譯時會有警告,說指針類型不匹配。但對于程序來講,都旅穗是可以在特定的上下文中使用的。
運行結(jié)果是
t1,t2交替出現(xiàn)。
其實void也可以換為其它的類型如int, double等
又想到一個很好的辦法:
這次編譯不會有警告,運行也不會出錯。
示例代碼如下所示
#include stdio.h
long t1();
long t2();
int main()
{
long(*fn)()= (long (*)()) t1 ;
while(1){
fn = (long (*)()) fn();
}
}
long t1()
{
printf("t1\n");
return (long)t2 ;
}
long t2()
{
printf("t2\拆州卜n");
return (long)t1 ;
}