#define與typedef在很多方面都有不同,但是在我學習時,就是在const的運用下它倆的區別不太容易理解,所以其他不同我就不予介紹,希望這篇小小的博客能幫助大家理解。
首先我們知道
typedef int* F;
F a;
與
#define F int*
F a;
兩者在定義變量a時,是沒有多大區別的
但是當用const來定義變量a時,兩者就有不同之處
——————————————————————————————————————————
例:
typedef int* F;
const F p //等效于int* const p 此時const使得指針只能指向p,p的內容可更改
#define f int*
const f p //等效于const int* p 此時const使得p的內容不可更改,但是指針指向可以更改
——————————————————————————————————————————
所以此時typedef int* F與#define f int*不同
但是如何在用const定義變量時#define與typedef效果相同呢?
typedef const int* F等效于#define F int* (僅當用const定義變量時)
//以上皆為個人所想,如有錯誤之處請不吝賜教:)
新聞熱點
疑難解答
圖片精選