關於typedef的用法

2021-09-12 17:24:06 字數 1190 閱讀 2530

1.常規變數型別定義

eg:typedef unsigned char uchar

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

2.陣列型別定義

eg: 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.指標型別定義

eg: typedef int *pointer;

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

eg: typedef int *pointer[m];

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

4.函式位址說明

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

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

5.函式宣告

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

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

2: func *pf宣告等價於 int (*pf)(void)宣告,用於函式指標的生命,

6.函式指標

eg: typedef int (func)(void)

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

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

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

func等價於unsigned unsigned int (*)(unsigned char);

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

func f等價於unsigned unsigned int (*f)(unsigned char)

關於typedef的用法

在計算機程式語言中用來為複雜的宣告定義簡單的別名,與巨集定義有些差異。它本身是一種儲存類的關鍵字,與auto extern mutable static register等關鍵字不能出現在同乙個表示式中。typedef宣告,簡稱typedef,為現有型別建立乙個新的名字,或稱為型別別名,在 結構體定...

關於typedef的用法

在c 中定義結構體時可以採用如下的定義 struct student1 int num char name 10 stu1 student1 stu1 此時的stu1即是乙個結構體變數,可使用stu1.num 1來進行賦值。在使用typedef時,將上述定義改為 typedef struct stu...

關於typedef的用法總結

不管實在c還是c 中,typedef這個詞都不少見,當然出現頻率較高的還是在c 中。typedef與 define有些相似,但更多的是不同,特別是在一些複雜的用法上,就完全不同了,看了網上一些c c 的學習者的部落格,其中有一篇關於typedef的總結還是很不錯,由於總結的很好,我就不加修改的引用過...