typeof關鍵字

typeof與typedef的區別:


typedef用來定義類型別名,c/c++裏都有,屬於語言的一個特性,和mfc無關
比如
typedef int* intptr;
intptr a; // 相當於int* a;

typeof,我所知道的是gcc中對c/c++
語法的一個擴展,用來靜態獲取參數類型
比如
int a = 3;
typeof(a) b = 4; // 相當於 int b = 4;
typeof("12345") c = "abcde"; // 相當於 const char c[6] = "abcde"
vector<typeof(1.234)> a; // 相當於 vector<double> a;

typeof構造的主要應用是用在宏定義中。可以使用typeof關鍵字來引用宏參數的類型。

因此,在沒有將類型名明確指定爲宏實參的情況下,構造帶有所需類型的對象是可能的。

例如:

#define swap(x, y) {typeof(x) tmp = x; x = y; y = tmp;}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章