1. 表達式的例子:
[code]typeof (x[0](1))
這裡假設x是一個函數指針數組,這樣就可以得到這個函數返回值的類型了。如果將typeof用於表達式,則該表達式不會執行。只會得到該表達式的類型。以下示例聲明了int類型的var變量,因為表達式foo()是int類型的。由於表達式不會被執行,所以不會調用foo函數。
[code]extern int foo(); typeof(foo()) var;
2.參數的例子:
[code]typeof(int *) a,b;
等價於:
[code]int *a,*b;
[code]typeof (*x) y;2,把y定義成x指向數據類型的數組:
[code]typeof (*x) y[4];3,把y定義成一個字符指針數組:
[code]typeof (typeof(char *)[4]) y;這與下面的定義等價:
[code]char *y[4];4,
[code]typeof(int *) p1,p2;等價於:
[code]int *p1, *p2;5,
[code]typeof(int) *p3,p4;等價於:
[code]int *p3, p4;6,
[code]typeof(int [10]) a1, a2;等價於:
[code]int a1[10], a2[10];
[code]typeof(extern int) a;下列代碼使用外部鏈接來聲明標識符b是有效的,表示一個int類型的對象。下一個聲明也是有效的,它聲明了一個使用const限定符的char類型指針,表示指針p不能被修改。
[code]extern typeof(int) b; typeof(char * const) p = "a";