在使用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全是指針