C語(yǔ)言?typedef的用法示例詳解
一、什么是typedef
typedef是在C和C++編程語(yǔ)言中的一個(gè)關(guān)鍵字。作用是為現(xiàn)有的數(shù)據(jù)類型(int、float、char……)創(chuàng)建一個(gè)新的名字,目的是為了使代碼方便閱讀和理解。
二、typedef用法
1、對(duì)于數(shù)據(jù)類型使用例如:
typedef? int?? NEW_INT;
以上就是給int起了一個(gè)新的名字NEW_INT,注意要加分號(hào)。當(dāng)要定義int類型數(shù)據(jù)時(shí)就可以:
NEW_INT num;
此時(shí)NEW_INT num 等同于 int num。
2、對(duì)于指針的使用例如
typedef? int?? *PTRINT;
以上就是給int *起了一個(gè)新的名字NEW_INT??啥xint類型指針變量如:
PTRINT x;
此時(shí)PTRINT x等同于int *x。
例:
3、對(duì)于結(jié)構(gòu)體的使用
在聲明結(jié)構(gòu)體時(shí)可為結(jié)構(gòu)體和結(jié)構(gòu)體指針起別名,如:
typedef struct NUM { int a; int b; }DATA,*PTRDATA;
此時(shí)DATA等同于struct NUM,*PTRDATA等同于struct NUM *。
定義結(jié)構(gòu)體變量及指針可簡(jiǎn)化為:
DATA data; //定義結(jié)構(gòu)體變量 PTRDATA pdata; //定義結(jié)構(gòu)體指針
舉個(gè)例子:
#include <stdio.h> typedef struct NUM { int a; int b; }DATA,*PTRDATA; int main() { DATA data; //定義結(jié)構(gòu)體變量 PTRDATA pdata; //定義結(jié)構(gòu)體指針 pdata=&data; //結(jié)構(gòu)體指針指向結(jié)構(gòu)體變量 data.a=100; data.b=500; printf("a=%d\nb=%d\n",data.a,data.b); printf("a=%d\nb=%d\n",pdata->a,pdata->b); return 0; }
運(yùn)行結(jié)果:
三、進(jìn)階typedef
1、數(shù)組指針
int (*ptr)[3];
使用Typedef:
typedef int (*PTR_TO_ARRAY)[3];
例:
#include <stdio.h> typedef int (*PTR_TO_ARRAY)[3]; int main() { Int I; Int temp[3]={1,2,3}; PTR_TO_ARRAY ptr_to_array; ptr_to_array = &temp; for(i+0;i<3;i++) { printf("%d\n",(*ptr_to_array)[i]); } return 0; }
2、指針函數(shù)
int (*fun)(void);
使用Typedef:
typedef int (*PTR_TO_FUN)(void);
3、Int *(*array[3])(int);
int *(*array[3])(int);
使用Typedef:
typedef int *(*PTR_TO_FUN)(int); PTR_TO_FUN array[3];
4、Void (*funA(int,void(*funB)(int)))(int);
void (*funA(int,void(*funB)(int)))(int); void (*funA(參數(shù)))(int);
使用Typedef:
typedef void (*PTR_TO_FUN)(void); PTR_TO_FUN funA(int, PTR_TO_FUN);
四、Typedef與define
Typedef是起別名,define是替換。
例如:
typedef int *PTR; PTR a,b;
此時(shí)a,b都是指針變量。
#define PTR int* PTR a,b;
此時(shí)等同于
int *a,b;
只有a為指針變量,而b為整型變量。
到此這篇關(guān)于C語(yǔ)言 typedef的使用的文章就介紹到這了,更多相關(guān)C語(yǔ)言 typedef使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解C語(yǔ)言中typedef和#define的用法與區(qū)別
- C語(yǔ)言中typedef的用法以及#define區(qū)別詳解
- C語(yǔ)言中#define與typedef的互換細(xì)節(jié)詳解
- C語(yǔ)言基礎(chǔ)知識(shí)點(diǎn)解析(extern,static,typedef,const)
- C語(yǔ)言之結(jié)構(gòu)體定義 typedef struct 用法詳解和用法小結(jié)
- C語(yǔ)言 typedef:給類型起一個(gè)別名
- C語(yǔ)言typedef與復(fù)雜函數(shù)聲明問題的深入解析
- C語(yǔ)言中的typedef、#define、const特點(diǎn)和用法介紹
相關(guān)文章
Qt實(shí)現(xiàn)保存、瀏覽、預(yù)覽、打印功能的示例代碼
下面小編就為大家分享一篇Qt實(shí)現(xiàn)保存、瀏覽、預(yù)覽、打印功能的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-01-01C語(yǔ)言popen函數(shù)調(diào)用其他進(jìn)程返回值示例詳解
這篇文章主要為大家介紹了C語(yǔ)言popen函數(shù)調(diào)用其他進(jìn)程返回值示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09c語(yǔ)言實(shí)現(xiàn)通訊錄管理系統(tǒng)詳細(xì)實(shí)例
這篇文章主要給大家介紹了關(guān)于c語(yǔ)言實(shí)現(xiàn)通訊錄管理系統(tǒng)的相關(guān)資料,通訊錄管理系統(tǒng)是一種常見的應(yīng)用程序,可以用來(lái)管理聯(lián)系人的信息,包括姓名、電話號(hào)碼、地址等,需要的朋友可以參考下2023-07-07c++函數(shù)中的指針參數(shù)與地址參數(shù)區(qū)別介紹
c++函數(shù)中的指針參數(shù)與地址參數(shù)區(qū)別介紹;可供參考2012-11-11QT實(shí)現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換
本文主要介紹了QT實(shí)現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列基本操作
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列基本操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09