欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C/C++中typedef的用法大全

 更新時(shí)間:2023年04月25日 10:03:16   作者:Thomas_Lbw  
typedef用法一共七種,分別是:為基本數(shù)據(jù)類(lèi)型起別名、為結(jié)構(gòu)體起別名、為指針類(lèi)型起別名、為數(shù)組類(lèi)型起別名、為枚舉類(lèi)型起別名、為模版函數(shù)起別名。本文就來(lái)分別講講這7個(gè)用法的具體實(shí)現(xiàn)吧

一、為基本數(shù)據(jù)類(lèi)型起別名

typedef int myint;
myint x = 5;

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

二、為結(jié)構(gòu)體起別名

這個(gè)在學(xué)C語(yǔ)言時(shí)就知道了:

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

三、為指針類(lèi)型起別名

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

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

四、為函數(shù)指針類(lèi)型起別名

在這個(gè)例子中,"func_ptr"是指向函數(shù)的指針類(lèi)型的別名,可以使用"func_ptr"來(lái)聲明函數(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 的新類(lèi)型。CreateMyObjectFunc 是一個(gè)函數(shù)指針類(lèi)型,它指向一個(gè)返回值為 MyInterface* 類(lèi)型的函數(shù),該函數(shù)沒(méi)有參數(shù)。

這種函數(shù)指針類(lèi)型的定義通常用于動(dòng)態(tài)加載庫(kù)文件中的函數(shù)。通過(guò)這種方式,可以定義一個(gè)函數(shù)指針類(lèi)型來(lái)代表動(dòng)態(tài)加載的庫(kù)文件中的函數(shù),并將其作為參數(shù)傳遞給動(dòng)態(tài)加載函數(shù)。然后可以使用該函數(shù)指針類(lèi)型調(diào)用動(dòng)態(tài)加載函數(shù)中的函數(shù)。在這種情況下,CreateMyObjectFunc 函數(shù)指針類(lèi)型可以用于動(dòng)態(tài)加載庫(kù)文件中的一個(gè)函數(shù),該函數(shù)返回一個(gè) MyInterface 類(lèi)型的指針。

五、為數(shù)組類(lèi)型起別名

typedef int myarray[10];
myarray arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

六、為枚舉類(lèi)型起別名

typedef enum { red, green, blue } Color;
Color c = green;

七、為模版函數(shù)起別名

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

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

到此這篇關(guān)于C/C++中typedef的用法大全的文章就介紹到這了,更多相關(guān)C++ typedef內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VS Code遠(yuǎn)程連接Linux服務(wù)器調(diào)試C程序的操作方法

    VS Code遠(yuǎn)程連接Linux服務(wù)器調(diào)試C程序的操作方法

    這篇文章主要介紹了VS Code遠(yuǎn)程連接Linux服務(wù)器調(diào)試C程序的操作方法,打開(kāi)遠(yuǎn)程 Linux 服務(wù)器上的文件夾本文以 /root/ 為例,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • C++中STL容器的主要使用及含義說(shuō)明

    C++中STL容器的主要使用及含義說(shuō)明

    這篇文章主要介紹了C++中STL容器的主要使用及含義說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 簡(jiǎn)單聊聊C++中線(xiàn)程的原理與實(shí)現(xiàn)

    簡(jiǎn)單聊聊C++中線(xiàn)程的原理與實(shí)現(xiàn)

    C++11?引入了多線(xiàn)程支持,提供了一套基本的線(xiàn)程庫(kù),包括線(xiàn)程、互斥量(mutex)、條件變量(condition_variable)等。這些組件可以幫助你在?C++?程序中實(shí)現(xiàn)并發(fā)和多線(xiàn)程編程,本文就來(lái)和大家簡(jiǎn)單聊聊吧
    2023-03-03
  • 人臉檢測(cè)中AdaBoost算法詳解

    人臉檢測(cè)中AdaBoost算法詳解

    這篇文章主要為大家詳細(xì)介紹了人臉檢測(cè)中AdaBoost算法的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • vscode+leetcode環(huán)境配置方法

    vscode+leetcode環(huán)境配置方法

    這篇文章主要介紹了vscode+leetcode環(huán)境配置,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C++實(shí)現(xiàn)LeetCode(149.共線(xiàn)點(diǎn)個(gè)數(shù))

    C++實(shí)現(xiàn)LeetCode(149.共線(xiàn)點(diǎn)個(gè)數(shù))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(149.共線(xiàn)點(diǎn)個(gè)數(shù)),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++利用 _findfirst與_findnext查找文件的方法

    C++利用 _findfirst與_findnext查找文件的方法

    這篇文章主要給大家介紹了關(guān)于C++利用 _findfirst與_findnext查找文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • 通過(guò)stringstream實(shí)現(xiàn)常用的類(lèi)型轉(zhuǎn)換實(shí)例代碼

    通過(guò)stringstream實(shí)現(xiàn)常用的類(lèi)型轉(zhuǎn)換實(shí)例代碼

    在本篇文章里小編給大家分享了關(guān)于通過(guò)stringstream實(shí)現(xiàn)常用的類(lèi)型轉(zhuǎn)換實(shí)例代碼內(nèi)容,需要的朋友們可以參考下。
    2020-04-04
  • C++存儲(chǔ)持續(xù)性生命周期原理解析

    C++存儲(chǔ)持續(xù)性生命周期原理解析

    這篇文章主要為大家介紹了C++存儲(chǔ)持續(xù)性生命周期原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • C++版本基于ros將文件夾中的圖像轉(zhuǎn)換為bag包

    C++版本基于ros將文件夾中的圖像轉(zhuǎn)換為bag包

    這篇文章主要介紹了C++版本基于ros將文件夾中的圖像轉(zhuǎn)換為bag包,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01

最新評(píng)論