c c typedef 和 define的區別

2021-09-29 05:26:42 字數 684 閱讀 2171

typedef 是用來定義一種型別的新別名的,它不同於巨集(#define),不是簡單的

字串替換。它的新名字具有一定的封裝性,所以新命名的識別符號具有更易定義變

量的功能,它是語言編譯過程的一部分,但它並不實際分配記憶體空間。

而 #define 只是簡單的字串替換(原地擴充套件),它本身並不在編譯過程中進行,

而是在這之前(預處理過程)就已經完成了。因此,它不會做正確性檢查,不管含義

是否正確它照樣會帶入,只有在編譯已被展開的源程式時才會發現可能的錯誤並報錯。

測試typedef**如下:

#include#define he int

typedef int a;

int main()

該**編譯報錯如下:

測試define**如下:

#include#define he int

typedef int a;

int main()

該**執行結果如下:

C C Typedef和define的區別

typedef和define都可以用來給物件取乙個別名,但是兩者卻有著很大不同。1 首先,二者執行時間不同 關鍵字typedef在編譯階段有效,由於是在編譯階段,因此typedef有型別檢查的功能。define則是巨集定義,發生在預處理階段,也就是編譯之前,它只進行簡單而機械的字串替換,而不進行任何...

糾結的const(static) 和 define

const static 和 define 在開發中常用來定義常量,這樣做的好處是 使 更易維護 提高 的效率。1 const static const是c c 中的乙個關鍵字 修飾符 const一般用來定義乙個常量,既然叫做常量,即以後再也不能修改其值。const 定義常量時,編譯器通常不為普通c...

C C typedef用法詳解

四個用途 1.用途一 定義一種型別的別名,而不只是簡單的巨集替換。可以用作同時宣告指標型的多個物件。比如 char pa,pb 這多數不符合我們的意圖,它只宣告了乙個指向字元變數的指標,和乙個字元變數 以下則可行 typedef char pchar 一般用大寫 pchar pa,pb 可行,同時宣...