c語言中--typeof--關鍵字用法

C語言中 typeof 關鍵字是用來定義變量數據類型的。在linux內核源代碼中廣泛使用。
下面是Linux內核源代碼中一個關於typeof實例:
#define min(x, y) ({                \
    typeof(x) _min1 = (x);          \
    typeof(y) _min2 = (y);          \
    (void) (&_min1 == &_min2);      \
    _min1 < _min2 ? _min1 : _min2; })
1.當x的類型爲是 int 時 _min1變量的數據類型則爲 int。
2.當x爲一個表達式時(例: x = 3-4), _min1變量的數據類型爲這個表達式結果的數據類型。
.......

3.typeof括號中也可以是函數
    例: int function(int, int);
        typeof(function(1. 2)) val;
    此時val的數據類型爲 函數function(int, int)返回值的數據類型    ,即int類型。(注意: typeof並不會執行函數function)。

typeof關鍵字有點類似與c++中的decltype關鍵字。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章