C語言學習系列 typedef用法

2021-08-03 19:59:09 字數 1401 閱讀 3175

typedef工具是乙個高階的資料特性,利用拖油瓶edef可以為某一型別自定義名稱。這方面和#define類似,但是兩者有3處不同:

與#define不同,typedef建立的符號名,只受限於型別,不能用於值。

typedef由編譯器解釋,不是預處理器。

在其受限範圍內,typedef比#define更靈活。

下面是typedef的幾種用法:

1.常規變數型別定義

例如:typedef unsigned char uchar

描述:uchar等價於unsigned char型別定義 uchar c宣告等於unsigned char c宣告

2.陣列型別定義

例如: typedef int array[2];

描述: array等價於 int [2]定義; array a宣告等價於int a[2]宣告

擴充套件: typedef int array[m][n];

描述: array等價於 int [m][n]定義; array a宣告等價於int a[m][n]宣告

3.指標型別定義

例如: typedef int *pointer;

描述: pointer等價於 int *定義;pointer p宣告等價於int *a宣告

例如: typedef int *pointer[m];

描述: pointer等價於 int *[m]定義 pointer p宣告等價於int *a[m]宣告明

4.函式位址說明

描述:c把函式名字當做函式的首位址來對待,我們可以使用最簡單的方法得到函式位址

例如: 函式:int func(void); unsigned long funcaddr=(unsigned long)func, funcaddr的值是func函式的首位址

5.函式宣告

例如: typedef int func(void); func等價於 int (void)型別函式

描述1: func f宣告等價於 int f(void)宣告,用於檔案的函式宣告

描述2: func *pf宣告等價於 int (*pf)(void)宣告,用於函式指標的生命,見下一條

6.函式指標

例如: typedef int (*func)(void)

描述: func等價於int (*)(void)型別

func pf等價於int (*pf)(void)宣告,pf是乙個函式指標變數

識別typedef的方法:

a).第一步。使用已知的型別定義替代typdef後面的名稱,直到只剩下乙個名字不識別為正確

b).第二步.未知名字為定義型別,型別為取出名稱和typedef的所有部分,

c).第三部.定義乙個變數時,變數型別等價於把變數替代未知名字的位置所得到的型別

常見用法參考自:

C語言學習 十六 typedef

typedef是關鍵字,可以使用它來為型別取乙個新的名字,下面的例項為單位元組數字定義了乙個術語byte typedef unsigned char byte 在這個型別定義之後,識別符號byte可作為型別unsigned char的縮寫,例如 byte b1,b2 按照慣例,定義時會大寫字母,以便...

C語言學習(十四) typedef學習

typedef是c語言的關鍵字 作用是為一種資料型別定義乙個新名字 這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 和struct來匹配為了 編寫簡潔和普通型別匹配,通過名字來獲取資訊 typedef和自定義結構體struct配合使用時,常常進行另外命名的同時...

c語言學習(二)typedef宣告結構體

2 struct宣告結構體 3 typedef和struct共同宣告 總結記錄一下在c語言中 c 和c中typedef又有區別,這裡暫時不介紹 typedef宣告結構體與struct直接宣告結構體有什麼區別 include typedef struct add int main 通過typedef宣...