2010-11-11 89 views

回答

4

typedefP定義爲函數指針類型。第二個版本將P定義爲函數指針。

一個類型可以用來聲明變量。

typedef int (*P)(char *(*)()); 

後,您可以使用

P p; 

這將等同於

int (*p)(char *(*)()); 
9

首先聲明瞭一個稱爲P,你可以在其他變量的聲明中使用。第二個聲明同一類型的變量

爲了說明的目的:

typedef int (*P)(char *(*)()); 

int main() { 
    int (*Q)(char *(*)()); 
    P R; 
} 

在此示例中的變量QR具有完全相同的類型。

+1

你是火的伴侶會被解析! 945代表在4天! +1 – alex 2010-11-11 02:15:31

+0

哈哈,謝謝。是的,我可能很快就會到室外去呼吸新鮮空氣。 – cdhowie 2010-11-11 02:18:55

+0

新鮮空氣被高估:D – alex 2010-11-11 02:21:31

1

簡單的答案是你通過typedef創建一個新的數據類型。

舉個簡單的例子,在嵌入式系統中我們只使用無符號數。 現在,1路是我寫

unsigned int xyz; 

所以在這裏我不得不爲unsigned無處不在..如果我忘記爲unsigned的地方,這是很難弄清楚,如果代碼被釋放。所以簡單的方法是

typedef unsigned int uint; 

所以,現在你可以使用uint作爲數據類型。所以無論何時解析器遇到uint,它都會將其讀爲unsigned int。

所以在你的情況下,你可以在代碼中使用P作爲數據類型。所以,像第一個例子

P xyz ; 

int (*xyz)(char *(*)());