91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++中的typedef怎么使用

發布時間:2023-04-25 17:55:25 來源:億速云 閱讀:131 作者:iii 欄目:開發技術

今天小編給大家分享一下C/C++中的typedef怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、為基本數據類型起別名

typedef int myint;
myint x = 5;

"myint"是"int"的別名,可以使用"myint"來代替"int"聲明變量,這個很好理解,但是也很少有人這么用吧。

二、為結構體起別名

這個在學C語言時就知道了:

typedef struct {
    int x;
    int y;
} Point;
 
Point p = { 3, 4 };

三、為指針類型起別名

在這個例子中,"intptr"是指向"int"類型的指針的別名,可以使用"intptr"來聲明指針變量。為防止代碼閱讀者有障礙,慎用吧。

typedef int* intptr;
intptr p = new int;
*p = 5;

四、為函數指針類型起別名

在這個例子中,"func_ptr"是指向函數的指針類型的別名,可以使用"func_ptr"來聲明函數指針變量。

typedef int (*func_ptr)(int, int);
int add(int a, int b) { return a + b; }
 
func_ptr f = add;
int result = (*f)(3, 4);

這個在DLL導出用到的比較多,如:

typedef MyInterface* (*CreateMyObjectFunc)();

在這個例子中,typedef 聲明了一個名為 CreateMyObjectFunc 的新類型。CreateMyObjectFunc 是一個函數指針類型,它指向一個返回值為 MyInterface* 類型的函數,該函數沒有參數。

這種函數指針類型的定義通常用于動態加載庫文件中的函數。通過這種方式,可以定義一個函數指針類型來代表動態加載的庫文件中的函數,并將其作為參數傳遞給動態加載函數。然后可以使用該函數指針類型調用動態加載函數中的函數。在這種情況下,CreateMyObjectFunc 函數指針類型可以用于動態加載庫文件中的一個函數,該函數返回一個 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;

七、為模版函數起別名

在這個例子中,"IntStruct"是模板類型"MyStruct"的具體化,可以使用"IntStruct"來聲明"MyStruct<int>"類型的變量。

template <typename T>
struct MyStruct {
    T value;
};
 
typedef MyStruct<int> IntStruct;
IntStruct s = { 5 };

以上就是“C/C++中的typedef怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双峰县| 绵阳市| 岳普湖县| 遵化市| 灯塔市| 贡觉县| 安多县| 芦溪县| 乌恰县| 龙海市| 天气| 衡东县| 霍州市| 西峡县| 通海县| 德惠市| 新郑市| 商洛市| 桓仁| 金秀| 班戈县| 聂荣县| 三门峡市| 察雅县| 普宁市| 潮安县| 璧山县| 增城市| 绥滨县| 台安县| 温泉县| 文登市| 霍山县| 东城区| 赤水市| 西丰县| 东源县| 精河县| 泗阳县| 习水县| 莫力|