| 1、typedef的用法   在C/C++語言中,typedef常用來定義一個標(biāo)識符及關(guān)鍵字的別名,它是語言編譯過程的一部分,但它并不實(shí)際分配內(nèi)存空間,實(shí)例像:   typedef int INT;   typedef int ARRAY[10];   typedef (int*) pINT;   typedef可以增強(qiáng)程序的可讀性,以及標(biāo)識符的靈活性,但它也有“非直觀性”等缺點(diǎn)。 2、#define的用法 #define為一宏定義語句,通常用它來定義常量,它本身并不在編譯過程中進(jìn)行,而是在這之前(預(yù)處理過程)就已經(jīng)完成了,但也因此難以發(fā)現(xiàn)潛在的錯誤及其它代碼維護(hù)問題,它的實(shí)例像:   #define INT int   #define TRUE 1   #define Add(a,b) ((a)+(b));   #define Loop_10 for (int i=0; i<10; i++)  在C++中,盡量用const enum  inline 取代 #define 3、typedef與#define的區(qū)別 typedef只是為了增加可讀性而為標(biāo)識符另起的新名稱(僅僅只是個別名),而#define原本在C中是為了定義常量,到了C++,const、enum、inline的出現(xiàn)使它也漸漸成為了起別名的工具。 typedef與#define如何選擇?一般都遵循#define定義“只讀”的常量以及一些宏語句的任務(wù),而typedef則常用來定義關(guān)鍵字、冗長的類型的別名。 宏定義只是簡單的字符串代換(原地擴(kuò)展),而typedef則不是原地擴(kuò)展,它的新名字具有一定的封裝性,以致于新命名的標(biāo)識符具有更易定義變量的功能。 typedef (int*) pINT;      pINT a,b;的效果同int *a; int *b;表示定義了兩個整型指針變量。 #define pINT2 int* pINT2 a,b;的效果同int *a, b;表示定義了一個整型指針變量a和整型變量b。 | 
|  |