天天看點

typedef和define的差別

在使用C語言或者C++開發中,我們離不開typedef和define的使用,typedef相當于我們重新定義了一種類型,而define則隻是簡單的替換,這裡我們簡單歸總一下二者的差别。

首先,我們可以用其他類型說明符對宏類型名進行擴充,但是對typedef的類型名不能擴充,比如

#define  demo   char

我們可以定義unsigned demo c;完全沒問題,但是對于typedef char  demo我們卻不能定義成unsigned demo c;

其次,在連續幾個變量的聲明中,用typedef定義的類型能夠保證聲明中所有的變量均為同一類型,而#define則不能保證

#define intp   int*

intp  p,q;

這樣的效果是隻有p才是指針類型,q則是普通整型;而

typedef int*  intp;

intp p,q;

則p和q全是指針