C語言中typedef與define的區別

2021-10-04 16:36:39 字數 808 閱讀 2974

typedef與define都是為乙個物件取別名。

區別:原理不同:

[1]. define是c語言的預處理指令,作用在預處理階段,不具有正確語法檢查,僅僅是在預處理階段字串的替換。

[2].typedef是乙個關鍵字,作用在編譯階段,具有型別檢查 ,typedef是給乙個已經存在的型別取別名;不能在函式內部使用typedef取別名。

作用場景不同

[1].typedef在給變數型別取別名時優於define。(對於指標的宣告我們很願意這麼寫 int* sam,即sam是整型指標型別,雖然 int *``sam也是相同的含義。)

typedef

int* int_p;

int_p a,b,c;

上面 a, b, c的型別都是整型指標型別。因為typedef是個int* 取別名,可以直接去宣告該型別的變數。

#define int* int_po;

int_po d,e,f;

而d, e, f型別是不一樣的,d是整型指標型別,e 和 f是整型。因為define在預處理階段只是將int_po 替換成 int*。

[2]. typedef給已存在型別取別名後,通常為了去宣告變數(簡化複雜庸長的型別 );define可以給常量取別名。宣告陣列時,陣列的下標只能是常量,如array[10];為了方便以後程式更好的維護,我們通常這麼做:

#define maxlen 1000

array[maxlen]

;

總結不到位,諒解。

C語言中的typedef

typedef是用於定義新的型別名,在程式設計中可以用typedef來定義新的型別名來代替已有的型別名 格式 typedef 已有型別名 新的型別名 通俗點說,就是為已有的型別取別名,例如 老鼠?又叫耗子?老鼠也是它,耗子也是他 但不能取新的型別名,也就是說不能憑空造出來乙個型別,必須是在已有的型別...

C語言中typedef用法

c語言中typedef用法 1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些...

C語言中的typedef

typedef 的講解與應用例項 用法一 型別的重定義 typedef unsigned char u8 typedef char pchar 這裡的第一句是給unsigned char型別重新起個別名,叫 u8 應用時看到u8 定義的變數,就相當於unsigned char 型別,兩者是完全等價的...