淺析C語(yǔ)言中typeof關(guān)鍵字用法
前言
C語(yǔ)言中 typeof 關(guān)鍵字是用來(lái)定義變量數(shù)據(jù)類型的。在linux內(nèi)核源代碼中廣泛使用。
下面是Linux內(nèi)核源代碼中一個(gè)關(guān)于typeof實(shí)例:
#define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ (void) (&_min1 == &_min2); \ _min1 < _min2 ? _min1 : _min2; })
1.當(dāng)x的類型為是 int 時(shí) _min1變量的數(shù)據(jù)類型則為 int。
2.當(dāng)x為一個(gè)表達(dá)式時(shí)(例: x = 3-4), _min1變量的數(shù)據(jù)類型為這個(gè)表達(dá)式結(jié)果的數(shù)據(jù)類型。
.......
3.typeof括號(hào)中也可以是函數(shù)
例:
int function(int, int); typeof(function(1. 2)) val;
此時(shí)val的數(shù)據(jù)類型為 函數(shù)function(int, int)返回值的數(shù)據(jù)類型 ,即int類型。(注意: typeof并不會(huì)執(zhí)行函數(shù)function)。
typeof關(guān)鍵字有點(diǎn)類似與c++中的decltype關(guān)鍵字。
- C語(yǔ)言關(guān)鍵字大全(共32個(gè))
- C語(yǔ)言關(guān)鍵字auto與register的深入理解
- 詳解C語(yǔ)言中const關(guān)鍵字的用法
- C語(yǔ)言按關(guān)鍵字搜索文件夾中文件的方法
- 探討C語(yǔ)言中關(guān)鍵字volatile的含義
- 詳解C++中的const關(guān)鍵字及與C語(yǔ)言中const的區(qū)別
- C語(yǔ)言關(guān)鍵字union的定義和使用詳解
- 詳解C語(yǔ)言正確使用extern關(guān)鍵字
- 一篇文章帶你了解C語(yǔ)言中volatile關(guān)鍵字
- C語(yǔ)言深度解剖篇之關(guān)鍵字以及補(bǔ)充內(nèi)容
相關(guān)文章
c++基礎(chǔ)語(yǔ)法:構(gòu)造函數(shù)與析構(gòu)函數(shù)
構(gòu)造函數(shù)用來(lái)構(gòu)造一個(gè)對(duì)象,主要完成一些初始化工作,如果類中不提供構(gòu)造函數(shù),編譯器會(huì)默認(rèn)的提供一個(gè)默認(rèn)構(gòu)造函數(shù)(參數(shù)為空的構(gòu)造函數(shù)就是默認(rèn)構(gòu)造函數(shù)) ;析構(gòu)函數(shù)是隱式調(diào)用的,delete對(duì)象時(shí)候會(huì)自動(dòng)調(diào)用完成對(duì)象的清理工作2013-09-09Java C++ 算法leetcode828統(tǒng)計(jì)子串中唯一字符乘法原理
這篇文章主要為大家介紹了Java C++ 算法leetcode828統(tǒng)計(jì)子串中唯一字符乘法原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09c++獲取進(jìn)程信息列表和進(jìn)程所調(diào)用的dll列表
這篇文章主要介紹了c++獲取進(jìn)程信息列表和進(jìn)程所調(diào)用的dll列表,大家參考使用吧2013-11-11Qt模仿Windows文件夾縮略圖的三種實(shí)現(xiàn)方式
本文講的不是簡(jiǎn)單的model/view或者widget的或者QML的基礎(chǔ)框架實(shí)現(xiàn),而是在這些框架之上的肉(文件夾縮略圖)的效果實(shí)現(xiàn),本文將以QWidget、Qt Quick(QML)、以及QGraph三種實(shí)現(xiàn)方式來(lái)講解,如何做出和Windows類似的縮略圖,需要的朋友可以參考下2024-04-04深入學(xué)習(xí)C語(yǔ)言中常見(jiàn)的八大排序
排序編程中非?;A(chǔ)的的理論方法,雖然排序的方法多,但是理解起來(lái)并不難,它是最基本的,初學(xué)者一定要掌握的東西。本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值2021-11-11