您好,登錄后才能下訂單哦!
今天小編給大家分享一下C/C++中的typedef怎么使用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
typedef int myint; myint x = 5;
"myint"是"int"的別名,可以使用"myint"來代替"int"聲明變量,這個(gè)很好理解,但是也很少有人這么用吧。
這個(gè)在學(xué)C語(yǔ)言時(shí)就知道了:
typedef struct { int x; int y; } Point; Point p = { 3, 4 };
在這個(gè)例子中,"intptr"是指向"int"類型的指針的別名,可以使用"intptr"來聲明指針變量。為防止代碼閱讀者有障礙,慎用吧。
typedef int* intptr; intptr p = new int; *p = 5;
在這個(gè)例子中,"func_ptr"是指向函數(shù)的指針類型的別名,可以使用"func_ptr"來聲明函數(shù)指針變量。
typedef int (*func_ptr)(int, int); int add(int a, int b) { return a + b; } func_ptr f = add; int result = (*f)(3, 4);
這個(gè)在DLL導(dǎo)出用到的比較多,如:
typedef MyInterface* (*CreateMyObjectFunc)();
在這個(gè)例子中,typedef 聲明了一個(gè)名為 CreateMyObjectFunc 的新類型。CreateMyObjectFunc 是一個(gè)函數(shù)指針類型,它指向一個(gè)返回值為 MyInterface* 類型的函數(shù),該函數(shù)沒有參數(shù)。
這種函數(shù)指針類型的定義通常用于動(dòng)態(tài)加載庫(kù)文件中的函數(shù)。通過這種方式,可以定義一個(gè)函數(shù)指針類型來代表動(dòng)態(tài)加載的庫(kù)文件中的函數(shù),并將其作為參數(shù)傳遞給動(dòng)態(tài)加載函數(shù)。然后可以使用該函數(shù)指針類型調(diào)用動(dòng)態(tài)加載函數(shù)中的函數(shù)。在這種情況下,CreateMyObjectFunc 函數(shù)指針類型可以用于動(dòng)態(tài)加載庫(kù)文件中的一個(gè)函數(shù),該函數(shù)返回一個(gè) MyInterface 類型的指針。
typedef int myarray[10]; myarray arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
typedef enum { red, green, blue } Color; Color c = green;
在這個(gè)例子中,"IntStruct"是模板類型"MyStruct"的具體化,可以使用"IntStruct"來聲明"MyStruct<int>"類型的變量。
template <typename T> struct MyStruct { T value; }; typedef MyStruct<int> IntStruct; IntStruct s = { 5 };
以上就是“C/C++中的typedef怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。