C語言 typedef總結

2021-07-01 18:50:56 字數 2723 閱讀 3923

原文出自:

只是關於typedef的總結,會用的飄過即可。

1、我們可以為基本資料型別定義別名

格式:typedef 型別名稱 別名;

複製**

示例:typedef int integer;

interger i1 = 0;

int i2 = 0;

複製**

2、我們可以為指標型別定義別名

格式:typedef 型別名稱* 別名;

複製**

示例:typedef char* string;

string c1 = "hello";

char *c2 = "hallo";

複製**

3、我們還可以為剛才的別名再次定義別名

格式:typedef 別名 新別名;

複製**

示例:typedef int integer;

typedef integer number;

int i1 = 0;

integer i2 = 1;

number i3 = 2;

複製**

4、我們可以為結構體定義別名

格式:typedef struct 結構體名稱

別名;

複製**

typedef struct 結構體名稱

;typedef struct 結構體名稱 別名;

複製**

typedef struct

別名;

複製**

示例:typedef struct students

stu;

struct students s1 = ;

stu s2 = ;

複製**

typedef struct students

;typedef struct students stu;

struct students s1 = ;

stu s2 = ;

複製**

typedef struct

stu;

stu s1 = ;

複製**

5、我們可以為列舉定義別名

格式:typedef enum 列舉名稱 別名;

複製**

typedef enum 列舉名稱;

typedef enum 列舉名稱 別名;

複製**

示例:typedef enum gender ***;

enum gender g1;

*** s1;

複製**

typedef enum gender;

typedef enum gender ***;

enum gender g1;

*** s1;

複製**

6、我們還可以為指向函式的指標定義別名

格式:typedef 型別名稱 (*別名)(行參型別1,行參型別2,...);

複製**

示例:typedef int (*cal)(int,int);

int sum(int a,int b)

int minus(int a,int b)

int main()

複製**

7、我們可以為結構體指標定義別名

格式:struct 結構體名稱

;typedef struct 結構體名稱 * 別名;

複製**

typedef struct 結構體名稱

* 別名;

複製**

示例:struct students

;typedef struct students * point;

struct students p = ;

sturct students *p1 = &p;

point p2 = &p;

複製**

typedef struct students

* point;

struct students p = ;

sturct students *p1 = &p;

point p2 = &p;

複製**

8、注意:

在某些場合下我們也可以使用巨集定義來定義別名,例如下面**:

typedef int integer;

int main()

複製**

它的效果等同於:

#define integer int

int main()

複製**

但這兩種方法並不是在所有情況下都可以能得到同樣的效果,例如:

**一:

typedef char * string;

int main()

複製**

**二:

#define string char *;

int main()

複製**

**一中,s1與s2均為char *

**二中,s3為char *,s4卻為char。

這是因為#define只是將**中的string全部替換為char *而已:

替換前:

string s3,s4;

複製**

替換後:

char * s3,s4;

複製**

替換後的**等同於:

char * s3;

char s4;

複製**

c語言 typedef用法總結

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

C語言typedef詳解

在c還是c 中,typedef都使用的很多。typedef與 define有些相似,其實是不同的。基本定義 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字,這裡的資料型別包括基本資料型別 int,char 也包括自定義的資料型別 struct 教科書上的解釋為 資料結構的表示 儲...

C語言typedef詳解

c語言允許使用者使用 typedef 關鍵字來定義自己習慣的資料型別名稱,來替代系統預設的基本型別名稱 陣列型別名稱 指標型別名稱與使用者自定義的結構型名稱 共用型名稱 列舉型名稱等。一旦使用者在程式中定義了自己的資料型別名稱,就可以在該程式中用自己的資料型別名稱來定義變數的型別 陣列的型別 指標變...