小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

typedef #define 區(qū)別

 nuster 2016-03-11
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。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多