define與typedef區別

define與typedef區別

define代表替換,typedef代表別名,可以從中文意義上來理解他們的區別。

define是在編譯之前,編譯器會將一些內容替換成另外一些內容,並且是全局的,

如下:

#define	FUNCTION  test

註釋:會將代碼裏的FUNCTION替黃成test

#define	FUNCTION(x)  void test(x){x++;}

註釋:可帶上參數,如x

#define	FUNCTION(x)  do{ x++}while(0)

註釋:或直接替換成操作

 

typedef是別名,給一些類型,變量,結構體,聯合體之類的起一個別名,非全局,

如下:

typede	int  aaa;

註釋:這意味着我們可以使用aaa x;(這代表int x;)

typedef	struct val_struct  val;

註釋:我們以後要使用val_struct類型的變量時,可以直接

val aaa;

而不需要

val_struct aaa;

來獲取一個結構體變量。

別名在一些自定義類型名稱過於複雜,太長的情況下使用。

 

注意,define不是程序語句,不需要加分號,typedef是程序語句,需要加分號

 

 

發佈了45 篇原創文章 · 獲贊 25 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章