日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
簡(jiǎn)單說,C++變量聲明與定義的區(qū)別-創(chuàng)新互聯(lián)
變量聲明與定義的關(guān)系。

為了能夠把程序分成多個(gè)邏輯部分來進(jìn)行編寫。C++支持分離式編譯1機(jī)制,這個(gè)機(jī)制使我們可以將程序分割成若干個(gè)文件,每個(gè)文件都可以被獨(dú)立編譯。

成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)建站一個(gè)展示的機(jī)會(huì)來證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。

那我們將一整個(gè)程序切割成了多個(gè)文件,為了使這些文件聯(lián)系起來,則肯定需要有一種文件間可以共享代碼的方式。例如,一個(gè)文件的代碼可能需要使用另一個(gè)文件中定義的變量。
一個(gè)實(shí)際的例子是,std::cout 和 std::cin 它們都定義于標(biāo)準(zhǔn)庫(kù),卻能夠被我們寫的程序所使用。

為了支持分離式編譯,C++將聲明與定義區(qū)分開來。聲明使得名字被程序所知,一個(gè)程序如果想要使用別的文件所定義的名字,就要包含對(duì)那個(gè)名字的聲明,而定義是負(fù)責(zé)創(chuàng)建名字所對(duì)應(yīng)的實(shí)體。

變量聲明規(guī)定了變量的類型與名字,在這一點(diǎn)上定義與之相同,除此之外,定義還申請(qǐng)了變量類型所對(duì)應(yīng)的內(nèi)存空間,也有可能對(duì)變量賦予了初始值。

如果想要聲明一個(gè)變量而不去定義它,就需要在變量類型前加上extern關(guān)鍵字,而且不要顯式的去初始化變量。

extern int a; //聲明變量a
int b; //聲明并定義b;
extern int c = 5; //定義c,并給c賦初始值5。如果c是全局變量,則會(huì)被編譯器給予警告,
				  //‘extern’變量有一個(gè)初始值。如果是在函數(shù)體內(nèi)部,則會(huì)直接報(bào)錯(cuò)。

任何初始化了的變量都會(huì)成為定義。我們可以給extern的變量加上一個(gè)初始值,但這同樣也抵消了extern關(guān)鍵字的作用,使這個(gè)聲明成為了一個(gè)定義。在函數(shù)體內(nèi),初始化一個(gè)extern變量將會(huì)引發(fā)錯(cuò)誤。

如果在多個(gè)文件中需要用到同樣的變量,就必須將變量的聲明與定義分開來寫。變量的定義必須出現(xiàn)在且只能出現(xiàn)在同一個(gè)文件之中,而其他需要用到這個(gè)變量的文件,則需要對(duì)這個(gè)變量進(jìn)行聲明。

一個(gè)變量可以被聲明無數(shù)次,但只能被定義一次。這一點(diǎn)非常重要?。?!

總結(jié)

聲明與定義的區(qū)別在于,聲明是讓變量的名字和類型被程序所知,而定義比聲明多申請(qǐng)了一個(gè)內(nèi)存空間。要想只聲明而不定義變量,就需要在變量類型前加上extern關(guān)鍵字。否則就是聲明且定義。任何初始化過的變量都是定義。
??注意:這里只是在將變量的聲明與定義的區(qū)別。和函數(shù)的定義與聲明不同。不要混淆了!??!

額外的小知識(shí)。

函數(shù)也可以多次聲明,但函數(shù)的聲明和變量的區(qū)別在于,函數(shù)的聲明不需要在函數(shù)類型前加extern關(guān)鍵字,而是省略了函數(shù)體。

void count();//聲明了count這個(gè)函數(shù)
void count();//重復(fù)聲明,不會(huì)報(bào)錯(cuò)。

  1. 分離式編譯模式源于C語(yǔ)言,在C++語(yǔ)言中繼續(xù)沿用。簡(jiǎn)單地說,分離編譯模式是指:一個(gè)程序(項(xiàng)目)由若干個(gè)源文件共同實(shí)現(xiàn),而每個(gè)源文件單獨(dú)編譯生成目標(biāo)文件,最后將所有目標(biāo)文件連接起來形成單一的可執(zhí)行文件的過程。 ??

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


本文標(biāo)題:簡(jiǎn)單說,C++變量聲明與定義的區(qū)別-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://www.dlmjj.cn/article/djchej.html