如:
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...