用typedef定義型別的總結分析

2022-09-29 16:12:23 字數 1424 閱讀 8061

如:

typbdzoxirjcedef int integer;

typedef float real;

指定用integer代表int型別,real代表float型別,這樣,下面的兩行等價:

1)int i,j;  float a,b;

2)integer i,j;   real a,b;

可以宣告結構體型別:

複製** **如下:

typedef struct

date;

宣告了新型別date,這時就可以使用date定義變數: date birthday(不要寫成 struct date birthday;);date* p;//指向結構體型別的指標。

還可以進一步:

1)typedef int num[10];//宣告整型陣列型別

num n;//定義n為整型陣列變數,其中n[0]--n[9]可用

2)typedef char* string;//宣告string為字元指標型別

string p,s[10];//p為字元指標變數,s為指標陣列

3)typedef int (*pointer)();//宣告pointer為指向函式的指標型別,該函式返回整型值,沒有引數

pointer p1,p2;//p1,p2為pointer型別的指標變數

說明:1)用typedef可以宣告各種型別名,但不能用來定義變數,用typedef可以宣告陣列型別、字串型別、使用比較方便。

例如:定義陣列,原來是用:int a[10],b[10],c[10],d[10];由於都是一維陣列,大小也相同,www.cppcns.com可以先將此陣列型別宣告為乙個名字:

typedef int arr[10];

然後用arr去定義陣列變數:

arr a為陣列型別,它包含10個元素。因此a,b,c,d都被定義為一維陣列,含10個元素。可以看到,用typedef可以將 陣列型別 和 陣列變數 分離開來,利用陣列型別可以定義多個陣列變數。同樣可以定義字串型別、指標型別等。

2)用typedef只是對已經存在的型別增加乙個型別名,而沒有創造新的型別。

3)typedef與#define有相似之處,但事實上二者是不同的,#define是在 預編譯 時處理,它只能做簡單的字串程式設計客棧替換,而typedef是在 編譯時 處理的。它並不是做簡單的字串替換,而是採用如同 定義變數 的方法那樣來 宣告 乙個型別。

例如:typedef int c程式設計客棧ount;和#define count int的作用都是用count代表int,單事實上它們二者是不同的。

4)當不同原始檔中用到 同一型別資料時,常用typedef宣告一些資料型別,把它們單獨放在乙個檔案中,然後在需要用到它們的檔案中用#include命令把它們包含進來。

5)typedef有利於程式的通用與移植。

本文標題: 用typedef定義型別的總結分析

本文位址:

typedef定義型別

c語言的2種型別 內建型別與使用者自定義型別 typedef定義型別而非變數 型別是乙個資料模板,變數是乙個實在的資料。型別不佔記憶體,變數佔記憶體 物件導向的語言中 型別就是類class,變數就是物件 typedef與 define巨集的區別 typedef與結構體 結構體在使用時都是先定義結構體...

C C 學習筆記25 用typedef定義型別

除了可以直接使用c提供的標準型別名和自己宣告的結構體 共用體 指標等型別外,還可以用typedef宣告新的型別名來代替已有的型別名。我們還是從乙個面試題來分析typedef的用法 寫出下面 的輸出內容 include int inc int a int multi int a,int b,int c...

typedef定義資料型別

用typedef重新定義資料型別很常用 1.用typedef重新定義普通型別資料。typedef int count 將int重新命名為count typedef float score 將float重新命名為score 2,用typedef將為指標型別重新命名 typedef float poin...