a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

再駁Linus:思科工程師對(duì)C++不得不說的事

發(fā)布時(shí)間:  2012/8/25 18:38:22

薩丕爾—沃爾夫假說曾經(jīng)在語言學(xué)研究領(lǐng)域風(fēng)靡一時(shí)。我粗略總結(jié)了一下,這個(gè)假說的核心思想是:你使用的語言影響和制約了你的想法。例如,如果你的語言只有一個(gè)單詞來描述雪,你將很難說出粉狀雪和易碎的冰雹之間的差別。

當(dāng)我了解后,我徹底不相信薩丕爾—沃爾夫假說。雖然語言相對(duì)論帶著一套假說卷土重來,但幾乎可以肯定的是,人類思想絕不受制于詞匯和語法的牢籠。

E.W. Dijkstra是編程語言領(lǐng)域的薩丕爾,他曾說過:

“給以前接觸過BASIC學(xué)生教良好的編程幾乎是不可能的。作為潛在的程序員,他們精神上已經(jīng)殘廢,無再生的希望。使用COBOL更是摧殘了他們的心靈,因此,教他們應(yīng)該被視為刑事犯罪”。

今天,我們有Linus Torvalds對(duì)C++的炮轟,他認(rèn)為使用C++的程序員會(huì)破壞他或她接觸到任何項(xiàng)目。Linus是這樣說的:

“我得出的結(jié)論是,任何希望在項(xiàng)目中使用C++而不是C的程序員都是很可能讓我生氣的程序員,因此我不會(huì)給他們機(jī)會(huì)來搞砸我的項(xiàng)目。C++導(dǎo)致真正糟糕的設(shè)計(jì)選擇。”

Torvalds太過武斷

在我所在的大型企業(yè)中,我們的名片背面有一句口號(hào):不迷信科技。做到這一點(diǎn)可能不容易,但是的,我們?cè)敢鈬L試。

對(duì)我來說,這個(gè)訓(xùn)誡意味著兩件事:

1、嘗試客觀地為工作選擇最佳的工具

2、不要讓你對(duì)工具的偏好指揮完成工作的方法

Linus在他的炮轟中已經(jīng)說得很清楚,任何使用C++編程的人都很心虛,拿這些規(guī)則做借口。

但我有不同的想法,我認(rèn)為C++顯然也有可能成為完成工作最合適的工具。得出這樣的結(jié)論是相當(dāng)客觀的,我認(rèn)為Linus顯然是被他特殊的技術(shù)流派迷惑了。

一個(gè)簡單的例子

作為我上學(xué)期C/C++編程班的期末作業(yè),我要求學(xué)生用C實(shí)現(xiàn)一個(gè)簡單的令牌計(jì)數(shù)程序,目標(biāo)是要重現(xiàn)下面這段C++代碼的行為:

map counts;
string s;
while ( cin >> s )
counts[s]++;
for ( auto ii = counts.begin() ; ii != counts.end() ; ii++ )
cout << ii->second << " : " << ii->first << endl;

這個(gè)特殊的程序突出了一些C中沒有的C++功能,如:

●C數(shù)組,向量多功能替換

● 字符串類

● 使用iostreams安全輸入

●關(guān)聯(lián)數(shù)組作為標(biāo)準(zhǔn)庫的一部分

這個(gè)程序用C++來寫是相當(dāng)容易的,只需要處理一下輸入流中的錯(cuò)誤——有時(shí)候甚至這一步都沒有必要。

用C實(shí)現(xiàn)

用C重寫是一個(gè)稍微復(fù)雜點(diǎn)的任務(wù),因?yàn)镃的庫中沒有任何類型的關(guān)聯(lián)數(shù)組。解決這個(gè)問題的辦法很多,我選擇了下面的辦法:

● 將所有令牌讀入一個(gè)數(shù)組

● 完成后,對(duì)數(shù)組排序

●完成數(shù)組排序后,通過遍歷每個(gè)令牌獲得計(jì)數(shù)

雖然這個(gè)算法占用的空間比C++程序更多。假設(shè)你沒有碰到gsort()之類病態(tài)的問題,花的時(shí)間可能都差不多。

我堅(jiān)信用C++比用C寫這個(gè)程序更容易,理由如下:

●C I/O缺陷。在C中讀字符串有相當(dāng)多的困難,由于C I/O庫沒有標(biāo)準(zhǔn)的方法讀取長度無限制的字符串(可以使用編譯器特定的擴(kuò)展,但那會(huì)引起其它問題),你的輸入代碼必須檢查多種錯(cuò)誤情況,或者構(gòu)建你自己的字符串輸入函數(shù)。

● C數(shù)組的內(nèi)存管理基本上是一項(xiàng)手工任務(wù),我必須為數(shù)組分配原始空間,如果超出了它的長度,我還得小心重新分配,做完后,我還得釋放空間。

● C字符串的內(nèi)存管理有同樣的問題。

● 字符串?dāng)?shù)組的排序使用gsort()只是有一點(diǎn)不方便,gsort()不能提供C++庫中sort()函數(shù)的性能保證。

這個(gè)函數(shù)的C版本代碼行數(shù)要多一些,需要手工完成的任務(wù)也要多一些,因此犯錯(cuò)的幾率也要大一些。

我喜歡C++版本的最后一個(gè)原因是,它同樣適合其它類型,如插入和提取運(yùn)算符類型、比較運(yùn)算符,都可以使用同樣的代碼,只需要變一個(gè)聲明。將實(shí)現(xiàn)同樣的事情的代碼轉(zhuǎn)換成一個(gè)函數(shù)模板,這樣就可以在以后直接拿來使用了。

我一些最好的朋友是C程序員

那么我偏愛C++版本就能說明我是一個(gè)語言偏執(zhí)的人嗎?

我認(rèn)為不能如此下結(jié)論,首先,我認(rèn)為這個(gè)程序的C版本也有一些不錯(cuò)的優(yōu)點(diǎn):

● 你可以使用POSIX系統(tǒng)調(diào)用編寫這個(gè)程序,除了內(nèi)存分配和排序。

●這個(gè)程序的C版本因?yàn)槭褂昧说讓覫/O,速度將會(huì)更快,C++ iostreams在任何時(shí)候都表現(xiàn)良好,但它們的分層方法在談到效率時(shí)總是處于不利地位。

因此,對(duì)于這樣一個(gè)程序,語言的選擇最終歸結(jié)為背景,如果你相信80/20規(guī)則,并且它不是程序的核心部分,你可能認(rèn)為這個(gè)代碼應(yīng)該用C++編寫。代碼行數(shù)越少,犯錯(cuò)的幾率就越低,效率可能不是最大的問題。

如果這是一段很關(guān)鍵的經(jīng)常執(zhí)行的代碼,你可能會(huì)認(rèn)為C是最佳選擇。如果選擇C,請(qǐng)一定要花點(diǎn)額外的時(shí)間進(jìn)行代碼評(píng)審,確保沒有內(nèi)存泄露和指針錯(cuò)誤,只有那樣,你才上路了。

撫平Linus的情緒

那么Linus看到上面的代碼是如何炮轟的呢?我斗膽猜一下,任何像樣的C++程序員都會(huì)寫出類似的代碼。Linus說:

“你一定使用了這種語言“好的”庫功能,如STL和Boost,它們對(duì)你的程序可能有幫助,但當(dāng)它們不工作時(shí),會(huì)引起無盡的痛苦”。

在這個(gè)程序中,我好好利用了曾是STL一部分的標(biāo)準(zhǔn)庫組件,它們作為標(biāo)準(zhǔn)的一部分已經(jīng)有十多年的歷史。它們的表現(xiàn)真的很好,在我所知道的任何編譯器中,也沒有可移植性或正確性問題。

“你會(huì)發(fā)現(xiàn)某些抽象編程模型不是很有效,但現(xiàn)在你所有的代碼都依賴于所有圍繞它的好對(duì)象模型。如果不重寫你的應(yīng)用程序,那么你是無法修復(fù)它的。”

的確,盡管C++不能為我做這些事,我只有設(shè)法自己編寫程序,不使用任何抽象——沒有新的類,沒有接口,基本上完全是靠C代碼完成許多有用的類的。

但我認(rèn)為這是規(guī)則而不是例外。

“換句話說,只有這樣才能做得好,效率高,系統(tǒng)級(jí)和可移植的C++最終會(huì)限制自己,但這一切在C中都是可行的。”

除非C有容器類,字符串類,類型安全I(xiàn)/O,以及RAII這樣的技術(shù),這句話才會(huì)變成真的。現(xiàn)在來看,它完全是胡說。

在現(xiàn)代C++可用之前,我可能會(huì)堅(jiān)持使用一個(gè)簡單的管道來完成這個(gè)任務(wù):

tr [:blank:] '\n' | grep -v "^$" | sort | uniq -c

事實(shí)上,我可以在編譯語言中做同樣的事。只要它們能給我一些靈活性,我想我不用成為一個(gè)偏執(zhí)狂就能明白這個(gè)事實(shí)。你對(duì)此又是怎樣看的?

作者簡介:Mark Nelson,現(xiàn)任思科公司工程師,《The Data Compression Book》的作者,《Developing Cisco IP Phone Services: A Cisco AVVID Solution》的協(xié)作者。


本文出自:億恩科技【www.ibaoshan.net】

服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線

     
     
    日本MACBOOKPRO高清| 40岁的寡妇下面紧不紧| 欧美黑人巨大精品VIDEOS| 国产精品自产拍高潮在线观看 | 浪潮AV激情高潮国产精品没电了 | WWW一区二区WWW免费| 亚洲丰满熟女一区二区V| 人体艺术在线观看| 精品无码国产自产拍在线观看| 成人乱码一区二区三区四区| 一本大道香蕉久中文在线播放| 四虎国产成人永久精品免费| 麻豆我精产国品一二三产区区别| 国产精品Ⅴ无码大片在线看| 24小时最新在线视频免费观看| 亚洲AⅤ精品一区二区三区| 翘臀后进呻吟喷水的少妇| 精品久久久久久久国产潘金莲| 岛国AV动作片免费观看| 在公车上拨开内裤进入| 西西人体艺术,国模人体| 欧洲肉欲K8播放毛片护士报告| 精品人妻久久久久久888| 大乱东京道一本热大交乱| 一本一久本久A久久精品综合 | 公天天吃我奶躁我| 中文天堂在线最新版在线WWW| 无码无套少妇毛多18PXXXX| 欧美成人精品视频在线观看| 精品国产福利在线观看| 丰满的熟妇人妻中文字幕久久| 中文文字幕文字幕亚洲色| 亚洲AV成人无码影视网| 人人爽人人爽人人片AV| 久久久亚洲一区少妇无码| 国产精品视频永久免费播放| YY111111少妇影院免费| 亚洲中文字幕久在线| 我被八个男人玩到早上| 欧美人与性囗牲恔配| 狠狠躁夜夜躁人人爽天天天天97| 超碰CAOPROM 永久地址发| 又色又爽又黄又无遮挡网站| 性亚洲VIDEOFREE高清极| 日本乱熟人妻精品乱码涩爱| 理论片午午伦夜理片1| 国产性色强伦免费视频| 超碰97人人做人人爱2020| 岳今晚让我玩个够肥水一体探岳体 | 亚洲AV永久无码精品一区二区| 人人爽人人爽人人爽| 狼人香蕉毛片AV高潮视频| 国产午夜亚洲精品理论片不卡 | 久久久久亚洲AV无码观看| 国产精品一国产精品一K频道| YW尤物爆乳网站点击进入| 一本色道无码不卡在线观看| 小SB是不是想被C了| 日本熟妇色丰满少妇wwwww色 | 国内自产少妇自拍区免费| 大肥女BBWBBWHD视频| 2020国产精品久久久久精品| 亚洲精品无码AV人在线播放| 玩弄CHINESE丰满人妻VI| 秋霞电影高清完整版| 看全色黄大色黄大片 视频| 国产一区二区三区不卡在线观看| 村长趴在小雪身上耕耘视频| 60老妇VIDEOXXX| 亚洲日韩一区二区一无码| 午夜亚洲乱码伦小说区69堂| 日本少妇内射XXⅩⅩⅩⅩⅩⅩ| 免费免费视频片在线观看| 精品系列无码一区二区三区| 国产欧美久久久久久精品一区二区| 成人无码免费一区二区三区| 99久久99久久精品国产片| 一边摸一边抽搐一进一出视频| 亚洲AV无码一区二区少妇| 四季亚洲Av日韩AV无码中文| 人妻互换ⅩXXXBBBB| 蜜臀AV无码一区二区三区小说| 精品亚洲A∨无码一区二区三区| 国产肉丝袜在线观看| 国产AV无码专区亚洲AV毛网站| 白又丰满大屁股BBBBB| 综合激情五月综合激情五月激情1 综合激情丁香久久狠狠 | AV天堂亚洲国产AV| 一边做饭一边躁狂怎么办| 亚洲国产美女久久久久| 无线乱码一二三区免费看| 色婷婷婷亚洲综合丁香五月| 欧美性爱在线视频| 蜜臀国产AV天堂久久无码蜜臀 | 色综合久久中文综合网| 青青草无码精品伊人久久7| 蜜臀亚洲AV无码精品国产午夜.| 久久99国产精一区二区三区| 国产尤物AV尤物在线观看| 国产成人午夜在线视频A站| 成熟交BGMBGMBGM日本| JIZZJIZZJIZZ日本| 中文字幕精品亚洲一区| 野花香日本大全免费观看 | 又黄又无遮挡AAAAA毛片| 亚洲精品无码久久毛片波多野吉衣| 午夜宅男在线永久免费观看网| 少妇午夜啪爽嗷嗷叫视频| 日本免费黄色网址| 欧美性爱一区二区三区| 内射人妻无码色AV| 两只奶头被老头吸肿了| 久久精品亚洲中文无东京热| 娇妻在客厅被朋友玩得呻吟动漫 | 欧美亚洲另类 丝袜综合网| 免费观看18禁无遮挡真人网站| 久久久久久久精品成人热色戒| 精品欧美一区二区在线观看| 国精品午夜福利视频不卡| 国产女人的高潮国语对白| 国产成人欧美精品视频APP| 高清熟女国产一区二区三区 | JAPONENSISFES中国| 7777成年免费视频| 中文无码字幕一区到五区免费| 一碰就有水的女人男人喜欢?| 亚洲欧美日本中文字不卡| 亚洲国产成人综合在线不卡| 亚洲AV无码传区国产乱码O| 小荡货奶真大水真多紧视频| 无码人妻久久一区二区三区免费| 天天躁日日躁很很躁2022| 少妇高清一区二区免费看| 色婷婷一区二区三区四区成人网 | 大屁股熟女白浆一区二区| 宝贝这么湿想要吗| 暗交拗一区二区三区| wwwxxx亚洲| BBBBBB嫩BBBBBB| AJ四色鸳鸯真假区别| AV鲁丝一区鲁丝二区鲁丝四| 99久久国语露脸精品国产| 99久久精品国产一区二区| 99无人区卡一卡二卡三乱码| AV无码久久久久不卡网站蜜桃| 99久久婷婷国产一区二区| AV无码波多野结衣| MM1313午夜视频在线观看| 啊轻点内射在线视频| 暴躁少女CSGO图片| 成人片黄网站A毛片免费| 第九午夜不卡影院| 各处沟厕大尺度偷拍女厕嘘嘘| 高潮VIDEOSSEX潮喷另类| 国产超碰人人模人人爽人人喊| 国产成人精品123区免费视频| 国产成人一区二区三区| 国产精品免费看久久久无码| 国产麻豆精品精东影业AV网站| 国产人成无码视频在线软件| 国精产品一区一区三区M| 好男人好资源影视在线| 极品教师高清免费观看| 精品深夜AV无码一区二区| 久久99精品久久久久久秒播| 久久精品中文字幕有码| 久久亚洲国产成人影院| 蜜臀AⅤ永久无码精品| 男友把舌头都伸进我的嘴巴里了| 欧美丰满美乳XXⅩ高潮www| 强开小婷嫩苞又嫩又紧韩国视频| 日本JAPANESE 办公室丝| 色狠狠久久AV北条麻妃| 天堂种子在线WWW网| 无码精品视频一区二区三区| 午夜DJ在线观看免费完整版社区| 性色AV无码专区一ⅤA亚洲| 亚洲成AV人在线视达达兔| 亚洲色欲色欲欲WWW在线| 曰本无码人妻丰满熟妇啪| 2021久久精品国产99国产精| japanese国产在线观看| 插我一区二区在线观看 | 亚洲国产成人无码网站大全| 亚洲色成人中文字幕网站| 野花 高清 中文 免费 日本| 在线精品国产一区二区三区| 2019NV天堂香蕉在线观看| PYTHON人马大战CSDN| 成熟丰满熟妇高潮XXXXX| 国产成人亚洲精品无码H在线| 国产帅男男Gay在线观看| 金瓶梅之爱的奴隶| 久久久久精品无码专区| 免费网站看SM调教打屁股视频| 欧美一性一交一免费看| 日韩人妻无码精品—专区| 偷拍 拍自 欧美色区| 亚洲AV无码专区在线电影成人网| 亚洲精品有码在线观看|