本篇內(nèi)容主要講解“C++優(yōu)化器的調(diào)用順序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C++優(yōu)化器的調(diào)用順序”吧!
創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團(tuán)隊(duì)10年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。
C++優(yōu)化器作為一般規(guī)則派生類構(gòu)造函數(shù)應(yīng)該不能直接向一個(gè)基類數(shù)據(jù)成員賦值而是把值傳遞給適當(dāng)?shù)幕悩?gòu)造函數(shù)否則兩個(gè)類的實(shí)現(xiàn)變成緊耦合的(tightly coupled)將更加難于正確地修改或擴(kuò)展基類的實(shí)現(xiàn)。
下面是C++優(yōu)化器的幾個(gè)例子:
1) 并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器)
2) 一個(gè)中斷服務(wù)子程序中會(huì)訪問到的非自動(dòng)變量(Non-automatic variables)
3) 多線程應(yīng)用中被幾個(gè)任務(wù)共享的變量
回答不出這個(gè)問題的人是不會(huì)被雇傭的。我認(rèn)為這是區(qū)分C程序員和嵌入式系統(tǒng)程序員的最基本的問題。搞嵌入式的家伙們經(jīng)常同硬件、中斷、RTOS等等打交道,所有這些都要求用到C++優(yōu)化器。不懂得volatile的內(nèi)容將會(huì)帶來災(zāi)難。假設(shè)被面試者正確地回答了這是問題(嗯,懷疑是否會(huì)是這樣),我將稍微深究一下,看一下這家伙是不是直正懂得volatile完全的重要性。
更好的理解C++編程學(xué)習(xí)與研究
闡述C++的相關(guān)學(xué)習(xí)方法進(jìn)行討論研究
詳細(xì)說明C++中的廢料收集缺陷問題
對(duì)于Visual C++開發(fā)工具進(jìn)行學(xué)習(xí)指導(dǎo)
簡(jiǎn)述C++語言支持函數(shù)重載問題介紹
1)一個(gè)參數(shù)既可以是const還可以是volatile嗎?解釋為什么。
2); 一個(gè)指針可以是volatile 嗎?解釋為什么。
3); 下面的函數(shù)有什么錯(cuò)誤:
int square(volatile int *ptr) { return *ptr * *ptr; }
下面是答案:
1)是的。一個(gè)例子是只讀的狀態(tài)寄存器。它是volatile因?yàn)樗赡鼙灰庀氩坏降馗淖?。它是const因?yàn)槌绦虿粦?yīng)該試圖去修改它。
2); 是的。盡管這并不很常見。一個(gè)例子是當(dāng)一個(gè)中服務(wù)子程序修該一個(gè)指向一個(gè)buffer的指針時(shí)。
3) 這段代碼有點(diǎn)變態(tài)。這段代碼的目的是用來返指針*ptr指向值的平方,但是,由于*ptr指向一個(gè)volatile型參數(shù),編譯器將產(chǎn)生類似下面的代碼:
int square(volatile int *ptr) { int a,b; a = *ptr; b = *ptr; return a * b; } 由于*ptr的值可能被意想不到地該變,因此a和b可能是不同的。結(jié)果,這段代碼可能返不是你所期望的平方值!正確的代碼如下: long square(volatile int *ptr) { int a; a = *ptr; return a * a; }
編譯器為了方便大規(guī)模程序的編寫,通常分為兩個(gè)階段:編譯和鏈接,以允許將大型程序分成多個(gè)獨(dú)立的小模塊單獨(dú)編譯,還可以引入一些現(xiàn)成的庫。C++優(yōu)化器的這里只大略地分為分析和生成代碼兩步,中間還可以進(jìn)行優(yōu)化。
C++優(yōu)化器為每個(gè)文件生成目標(biāo)代碼,鏈接程序把各個(gè)模塊連接起來,解釋每個(gè)模塊的外部引用,并鏈入一些系統(tǒng)庫,最終生成可執(zhí)行程序。為了檢查源碼語法是否正確,編譯器要執(zhí)行靜態(tài)類型檢查,但程序中使用的外部變量和函數(shù)編譯器無從知曉,需要程序員在使用前聲明。聲明告訴編譯器這個(gè)名字會(huì)在某處定義,它應(yīng)該按聲明的這樣使用,而定義才會(huì)分配內(nèi)存,定義同時(shí)也有聲明的作用。鏈接程序只會(huì)鏈接含有你使用的函數(shù)或變量的模塊。
到此,相信大家對(duì)“C++優(yōu)化器的調(diào)用順序”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
新聞標(biāo)題:C++優(yōu)化器的調(diào)用順序
URL地址:http://aaarwkj.com/article38/peegpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、靜態(tài)網(wǎng)站、營銷型網(wǎng)站建設(shè)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)