linux typedef 和define 宏的區別

在linux中變量的類型很多 有時候不同的平臺 存在變量的差異,所以我們就需要在寫大型的項目時就需要 給變量定義一個通用的名字。

在linux 中有兩種方法: 

 1. typedef 

 2. #define

例如: 

 typedef  int *  int32 

#define INT32  int *

這兩種定義都可以但他們有本質的區別 ,

 1.typedef 是在程序編譯時 去進行替換。而define 是在預編譯的時候替換的。

 2. 有時候在一些變量的定義時 是由本質差異的。 

 

  例如: 以下兩個變量的定義:

   typdef  char *  POINT          // 要理解 這個POINT 就是一個 指針。 不要把他簡單的 展開這是部隊的  要時刻都把他當 指針

   #define POINT_D  char*     //不用理解 就把他簡單 展開

const POINT p  // p=&x 這個操作時非法的,因爲p 是一個指針常量,但 *p=c 是正確的。

const POINT_D p // p=&x 這個操作是 合法的,但*p=c非法 因爲p是一個常量指針 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章