国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > typedef和#define的用法與區(qū)別

typedef和#define的用法與區(qū)別 時(shí)間:2019-05-23      來(lái)源:華清遠(yuǎn)見(jiàn)

一、typedef的用法

在C/C++語(yǔ)言中,typedef常用來(lái)定義一個(gè)標(biāo)識(shí)符及關(guān)鍵字的別名,它是語(yǔ)言編譯過(guò)程的一部分,但它并不實(shí)際分配內(nèi)存空間,實(shí)例像:typedef    int       INT;

typedef    int       ARRAY[10];

typedef    (int*)         pINT;

typedef可以增強(qiáng)程序的可讀性,以及標(biāo)識(shí)符的靈活性。

二、#define的用法

#define為一宏定義語(yǔ)句,通常用它來(lái)定義常量(包括無(wú)參量與帶參量),以及用來(lái)實(shí)現(xiàn)那些“表面似和善、背后一長(zhǎng)串”的宏,它本身并不在編譯過(guò)程中進(jìn)行,而是在這之前(預(yù)處理過(guò)程)就已經(jīng)完成了,它的實(shí)例像:#define   INT        int

#define   TRUE         1

#define   Add(a,b)     ((a)+(b));

#define   Loop_10    for (int i=0; i<10; i++)

三、typedef與#define的區(qū)別

(1)#define是C語(yǔ)言中定義的語(yǔ)法,是預(yù)處理指令,在預(yù)處理時(shí)進(jìn)行簡(jiǎn)單而機(jī)械的字符串替換,不作正確性檢查,只有在編譯已被展開(kāi)的源程序時(shí)才會(huì)發(fā)現(xiàn)可能的錯(cuò)誤并報(bào)錯(cuò)。

typedef是關(guān)鍵字,在編譯時(shí)處理,有類型檢查功能。它在自己的作用域內(nèi)給一個(gè)已經(jīng)存在的類型一個(gè)別名,但不能在一個(gè)函數(shù)定義里面使用typedef。用typedef定義數(shù)組、指針、結(jié)構(gòu)體等類型會(huì)帶來(lái)很大的方便,不僅使程序書(shū)寫(xiě)簡(jiǎn)單,也使意義明確,增強(qiáng)可讀性。

(2)typedef用來(lái)定義類型的別名,起到類型易于記憶的功能。另一個(gè)功能是定義機(jī)器無(wú)關(guān)的類型。如定義一個(gè)REAL的浮點(diǎn)類型,在目標(biāo)機(jī)器上它可以獲得最高的精度:typedef long double REAL, 在不支持long double的機(jī)器上,看起來(lái)是這樣的,typedef double REAL,在不支持double的機(jī)器上,是這樣的,typedef float REAL#define不只是可以為類型取別名,還可以定義常量、變量、編譯開(kāi)關(guān)等。

(3)#define沒(méi)有作用域的限制,只要是之前預(yù)定義過(guò)的宏,在以后的程序中都可以使用,而typedef有自己的作用域。

(4)

#define INTPTR1 int*

typedef int* INTPTR2;

INTPTR1 p1, p2;

INTPTR2 p3, p4;

含義分別為,聲明一個(gè)指針變量p1和一個(gè)整型變量p2聲明兩個(gè)指針變量p3、p4。

#define INTPTR1 int*;

typedef int* INTPTR2;

int a = 1;

int b = 2;

int c = 3;

const INTPTR1 p1 = &a;

const INTPTR2 p2 = &b;

INTPTR2 const p3 = &c;

上述代碼中,const INTPTR1 p1是一個(gè)常量指針,即不可以通過(guò)p1去修改p1指向的內(nèi)容,但是p1可以指向其他內(nèi)容。

const INTPTR2 p2是一個(gè)指針常量,不可使p2再指向其他內(nèi)容。因?yàn)镮NTPTR2表示一個(gè)指針類型,因此用const限定,表示封鎖了這個(gè)指針類型。

INTPTR2 const p3是一個(gè)指針常量。

上一篇:軟件工程就業(yè)前景

下一篇:C語(yǔ)言scanf函數(shù)用法

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部