自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

影響C++/C程序的幾大要素

開(kāi)發(fā) 后端
C++/C程序?qū)瘮?shù)的處理方式是不同的。extern “C”是使C++能夠調(diào)用C寫(xiě)作的庫(kù)文件的一個(gè)手段,如果要對(duì)編譯器提示使用C的方式來(lái)處理函數(shù)的話,那么就要使用extern “C”來(lái)說(shuō)明。

C++/C程序?qū)瘮?shù)的處理方式是不同的。extern “C”是使C++能夠調(diào)用C寫(xiě)作的庫(kù)文件的一個(gè)手段,如果要對(duì)編譯器提示使用C的方式來(lái)處理函數(shù)的話,那么就要使用extern “C”來(lái)說(shuō)明。

若研究項(xiàng)目小組的所有開(kāi)發(fā)人員都遵循統(tǒng)一的、鮮明的一套編程風(fēng)格,可以讓協(xié)作者、后繼者和自己一目了然,在很短的時(shí)間內(nèi)看清楚程序結(jié)構(gòu),理解設(shè)計(jì)的思路,大大提高代碼的可讀性、可重用性、程序健壯性、可移植性、可維護(hù)性。

制定本編程規(guī)范的目的是為了提高軟件開(kāi)發(fā)效率及所開(kāi)發(fā)軟件的可維護(hù)性,提高軟件的質(zhì)量。本規(guī)范由程序風(fēng)格、命名規(guī)范、注釋規(guī)范、程序健壯性、可移植性、錯(cuò)誤處理以及軟件的模塊化規(guī)范等部分組成。

每個(gè)C++/C程序通常分為兩個(gè)文件。一個(gè)文件用于保存程序的聲明(declaration),稱(chēng)為頭文件。另一個(gè)文件用于保存程序的實(shí)現(xiàn)(implementation),稱(chēng)為定義(definition)文件。

C++/C程序的頭文件以“.h”為后綴,C程序的定義文件以“.c”為后綴,C++程序的定義文件通常以“.cpp”為后綴(也有一些系統(tǒng)以“.cc”或“.cxx”為后綴)。早期的編程語(yǔ)言如Basic、Fortran沒(méi)有頭文件的概念,C++/C語(yǔ)言的初學(xué)者雖然會(huì)用使用頭文件,但常常不明其理。這里對(duì)頭文件的作用略作解釋?zhuān)?/p>

(1) 通過(guò)頭文件來(lái)調(diào)用庫(kù)功能。在很多場(chǎng)合,源代碼不便(或不準(zhǔn))向用戶(hù)公布,只要向用戶(hù)提供頭文件和二進(jìn)制的庫(kù)即可。用戶(hù)只需要按照頭文件中的接口聲明來(lái)調(diào)用庫(kù)功能,而不必關(guān)心接口怎么實(shí)現(xiàn)的。編譯器會(huì)從庫(kù)中提取相應(yīng)的代碼;

(2) 頭文件能加強(qiáng)類(lèi)型安全檢查。如果某個(gè)接口被實(shí)現(xiàn)或被使用時(shí),其方式與頭文件中的聲明不一致,編譯器就會(huì)指出錯(cuò)誤,這一簡(jiǎn)單的規(guī)則能大大減輕程序員調(diào)試、改錯(cuò)的負(fù)擔(dān)。assert不是一個(gè)倉(cāng)促拼湊起來(lái)的宏。為了不在程序的Debug版本和Release版本引起差別,assert不應(yīng)該產(chǎn)生任何副作用。

所以assert不是函數(shù),而是宏。程序員可以把a(bǔ)ssert看成一個(gè)在任何系統(tǒng)狀態(tài)下都可以安全使用的無(wú)害測(cè)試手段。如果程序在assert處終止了,并不是說(shuō)含有該assert的函數(shù)有錯(cuò)誤,而是調(diào)用者出了差錯(cuò),assert可以幫助我們找到發(fā)生錯(cuò)誤的原因。

絕大多數(shù)人都把細(xì)節(jié)太多(或者用貶義詞來(lái)說(shuō)就是“陰暗角落太多”)歸結(jié)為C++的本質(zhì)問(wèn)題,認(rèn)為一切邪惡由此而生。也正因此,大約9月份的時(shí)候,Linus在郵件列表上說(shuō)“C++/C程序是一門(mén)有思想包袱的語(yǔ)言;僅僅是為了讓程序員遠(yuǎn)離C++,我也要用C”。這句短短的話在國(guó)內(nèi)引起了很大的反應(yīng),最初是劉江轉(zhuǎn)了Linus的話,然后云風(fēng)和孟巖都發(fā)表了自己的看法;我也寫(xiě)了一篇“Why C++”(后來(lái)發(fā)給Bjarne,Bjarne對(duì)這篇文章做了一個(gè)友情評(píng)注)。

然而,這一通渾水?dāng)囘^(guò)之后,我相信引起的變化未必很大。大多數(shù)原先的反對(duì)者能從中找出反對(duì)的理由,于是更加反對(duì);大多數(shù)原先的贊同者也能從中找到贊同的理由,于是更加贊同;而剩下來(lái)的原先沒(méi)有明確意見(jiàn)的,看雙方各有各的道理,可能還是沒(méi)有頭緒。

【編輯推薦】

  1. 在C/C++算法設(shè)計(jì)中使用任意位寬
  2. 淺談C/C++中的順序點(diǎn)和副作用
  3. 淺談C/C++中的static和extern關(guān)鍵字
  4. C/C++中內(nèi)存區(qū)域劃分大總結(jié)
責(zé)任編輯:于鐵 來(lái)源: 51Testing軟件測(cè)試網(wǎng)采編
相關(guān)推薦

2010-01-26 17:27:58

C++C程序

2010-01-26 11:20:54

C++編輯器

2010-01-27 15:36:54

C++異常處理

2010-05-12 14:40:07

移動(dòng)統(tǒng)一通信

2010-01-25 18:05:40

C++語(yǔ)言

2010-01-13 13:36:54

C++應(yīng)用程序

2010-01-11 10:01:25

C++的編程工具

2010-01-14 09:55:30

C++標(biāo)準(zhǔn)庫(kù)

2011-06-29 10:13:49

服務(wù)器災(zāi)難恢復(fù)

2010-01-28 10:33:10

C++開(kāi)發(fā)程序

2010-01-28 14:46:08

C++變量

2021-02-26 10:41:59

C++程序員代碼

2011-04-08 09:52:44

C++C#DLL

2010-01-13 18:30:18

CC++程序設(shè)計(jì)

2010-01-12 17:10:56

Linux CC++程序

2010-01-12 10:40:22

C++程序員

2010-01-21 14:07:14

CC++聲明

2011-05-06 08:41:33

UI設(shè)計(jì)應(yīng)用程序iPad

2010-01-21 09:34:57

C++語(yǔ)法

2010-01-27 16:05:06

C++堆棧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)