http://blog.chinaunix.net/uid-28458801-id-4200573.html 一、typeof詳解: 前言: typeof關鍵字是C語言中的一個新擴展,這個特性在linux內核中應用非常廣泛。(其實這和C++的auto關鍵字和可以推斷decltype關鍵字相當類似) ...
http://blog.chinaunix.net/uid-28458801-id-4200573.html
一、typeof詳解:
前言:
typeof關鍵字是C語言中的一個新擴展,這個特性在linux內核中應用非常廣泛。(其實這和C++的auto關鍵字和可以推斷decltype關鍵字相當類似)
二、實例:
1,把y定義成x指向的數據類型:
typeof(*x) y;
2,把y定義成x指向數據類型的數組:
typeof(*x) y[4];
3,把y定義成一個字元指針數組:
typeof(typeof(char *)[4] y;
這與下麵的定義等價:
char *y[4];
4,typeof(int *) p1,p2; /* Declares two int pointers p1, p2 */
int *p1, *p2;
5,typeof(int) *p3,p4;/* Declares int pointer p3 and int p4 */
int *p3, p4;
6,typeof(int [10]) a1, a2;/* Declares two arrays of integers */
int a1[10], a2[10];
三,局限
typeof構造中的類型名不能包含存儲類說明符,如extern或static。不過允許包含類型限定符,如const或volatile。 例如,下列代碼是無效的,因為它在typeof構造中聲明瞭extern:
typeof(extern int) a;
四,文件參考
1,http://blog.csdn.net/wslong/article/details/7728811
2,http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof