C語言?typedef的用法示例詳解
一、什么是typedef
typedef是在C和C++編程語言中的一個關(guān)鍵字。作用是為現(xiàn)有的數(shù)據(jù)類型(int、float、char……)創(chuàng)建一個新的名字,目的是為了使代碼方便閱讀和理解。
二、typedef用法
1、對于數(shù)據(jù)類型使用例如:
typedef? int?? NEW_INT;
以上就是給int起了一個新的名字NEW_INT,注意要加分號。當(dāng)要定義int類型數(shù)據(jù)時就可以:
NEW_INT num;
此時NEW_INT num 等同于 int num。
2、對于指針的使用例如
typedef? int?? *PTRINT;
以上就是給int *起了一個新的名字NEW_INT。可定義int類型指針變量如:
PTRINT x;
此時PTRINT x等同于int *x。
例:
3、對于結(jié)構(gòu)體的使用
在聲明結(jié)構(gòu)體時可為結(jié)構(gòu)體和結(jié)構(gòu)體指針起別名,如:
typedef struct NUM { int a; int b; }DATA,*PTRDATA;
此時DATA等同于struct NUM,*PTRDATA等同于struct NUM *。
定義結(jié)構(gòu)體變量及指針可簡化為:
DATA data; //定義結(jié)構(gòu)體變量 PTRDATA pdata; //定義結(jié)構(gòu)體指針
舉個例子:
#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; }
運行結(jié)果:
三、進階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;
此時a,b都是指針變量。
#define PTR int* PTR a,b;
此時等同于
int *a,b;
只有a為指針變量,而b為整型變量。
到此這篇關(guān)于C語言 typedef的使用的文章就介紹到這了,更多相關(guān)C語言 typedef使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt實現(xiàn)保存、瀏覽、預(yù)覽、打印功能的示例代碼
下面小編就為大家分享一篇Qt實現(xiàn)保存、瀏覽、預(yù)覽、打印功能的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01C語言popen函數(shù)調(diào)用其他進程返回值示例詳解
這篇文章主要為大家介紹了C語言popen函數(shù)調(diào)用其他進程返回值示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09c++函數(shù)中的指針參數(shù)與地址參數(shù)區(qū)別介紹
c++函數(shù)中的指針參數(shù)與地址參數(shù)區(qū)別介紹;可供參考2012-11-11QT實現(xiàn)二、八、十六進制之間的轉(zhuǎn)換
本文主要介紹了QT實現(xiàn)二、八、十六進制之間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05