• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Creative Commons License
            本Blog采用 知識共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協(xié)議 進行許可。 —— Fox <游戲人生>

            游戲人生

            游戲人生 != ( 人生 == 游戲 )
            站點遷移至:http://www.yulefox.com。請訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
            posts - 62, comments - 508, trackbacks - 0, articles - 7

            [譯]Google C++編程風格指南(八)[完]

            Posted on 2008-07-23 14:28 Fox 閱讀(3833) 評論(11)  編輯 收藏 引用 所屬分類: T技術(shù)碎語

            原文地址:

            • 規(guī)則之例外

            前面說明的編碼習慣基本是強制性的,但所有優(yōu)秀的規(guī)則都允許例外。

            1. 現(xiàn)有不統(tǒng)一代碼(Existing Non-conformant Code)

            對于現(xiàn)有不符合既定編程風格的代碼可以網(wǎng)開一面。

            當你修改使用其他風格的代碼時,為了與代碼原有風格保持一致可以不使用本指南約定。如果不放心可以與代碼原作者或現(xiàn)在的負責人員商討,記住,一致性包括原有的一致性。

            1. Windows代碼(Windows Code)

            Windows程序員有自己的編碼習慣,主要源于Windows的一些頭文件和其他Microsoft代碼。我們希望任何人都可以順利讀懂你的代碼,所以針對所有平臺的C++編碼給出一個單獨的指導方案。

            如果你一直使用Windows編碼風格的,這兒有必要重申一下某些你可能會忘記的指南(譯者注,我怎么感覺像在被洗腦:D)

            1) 不要使用匈牙利命名法(Hungarian notation,如定義整型變量為iNum,使用Google命名約定,包括對源文件使用.cc擴展名;

            2) Windows定義了很多原有內(nèi)建類型的同義詞(譯者注,這一點,我也很反感),如DWORDHANDLE等等,在調(diào)用Windows API時這是完全可以接受甚至鼓勵的,但還是盡量使用原來的C++類型,例如,使用const TCHAR *而不是LPCTSTR

            3) 使用Microsoft Visual C++進行編譯時,將警告級別設(shè)置為3或更高,并將所有warnings當作errors處理

            4) 不要使用#pragma once;作為包含保護,使用C++標準包含保護包含保護的文件路徑包含到項目樹頂層(譯者注,#include<prj_name/public/tools.h>

            5) 除非萬不得已,否則不使用任何不標準的擴展,如#pragma__declspec,允許使用__declspec(dllimport)__declspec(dllexport),但必須通過DLLIMPORTDLLEXPORT等宏,以便其他人在共享使用這些代碼時容易放棄這些擴展。

            在Windows上,只有很少一些偶爾可以不遵守的規(guī)則:

            1) 通常我們禁止使用多重繼承,但在使用COMATL/WTL類時可以使用多重繼承,為了執(zhí)行COMATL/WTL類及其接口時可以使用多重實現(xiàn)繼承;

            2) 雖然代碼中不應(yīng)使用異常,但在ATL和部分STL(包括Visual C++的STL)中異常被廣泛使用,使用ATL時,應(yīng)定義_ATL_NO_EXCEPTIONS以屏蔽異常,你要研究一下是否也屏蔽掉STL的異常,如果不屏蔽,開啟編譯器異常也可以,注意這只是為了編譯STL,自己仍然不要寫含異常處理的代碼;

            3) 通常每個項目的每個源文件中都包含一個名為StdAfx.hprecompile.h的頭文件方便頭文件預(yù)編譯,為了使代碼方便與其他項目共享,避免顯式包含此文件(precompile.cc除外),使用編譯器選項/FI以自動包含;

            4) 通常名為resource.h、且只包含宏的資源頭文件,不必拘泥于此風格指南。

            • 團隊合作

            參考常識,保持一致

            編輯代碼時,花點時間看看項目中的其他代碼并確定其風格,如果其他代碼if語句中使用空格,那么你也要使用。如果其中的注釋用星號(*)圍成一個盒子狀,你也這樣做:

            /**********************************
            * Some comments are here.
            * There may be many lines.
            **********************************/
            
            

            編程風格指南的使用要點在于提供一個公共的編碼規(guī)范,所有人可以把精力集中在實現(xiàn)內(nèi)容而不是表現(xiàn)形式上。我們給出了全局的風格規(guī)范,但局部的風格也很重要,如果你在一個文件中新加的代碼和原有代碼風格相去甚遠的話,這就破壞了文件本身的整體美觀也影響閱讀,所以要盡量避免。

            好了,關(guān)于編碼風格寫的差不多了,代碼本身才是更有趣的,盡情享受吧!

            Benjy Weinberger
            Craig Silverstein
            Gregory Eitzmann
            Mark Mentovai
            Tashana Landray

            ______________________________________

            譯者:終于翻完了,前后歷時兩周,整個過程中,雖因工作關(guān)系偶有懈怠,但總算不是虎頭蛇尾(起碼我的態(tài)度是非常認真的:D),無論是否能對你有所裨益,對我而言,至少是溫習了一些以前知道的知識,也學到了一些之前不知道的知識

            剛好這兩天還不是特緊張,趕緊翻完了,要開始干活了……

            Feedback

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-23 15:31 by 儒客小子
            學到了不少,不過一直用MSVC,里面是有不一樣的
            辛苦了

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-23 17:32 by 逖靖寒
            辛苦了

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-23 19:06 by Alienfeel
            辛苦了!!

            全部加為收藏,贊啊

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-24 00:23 by 空明流轉(zhuǎn)的臨時馬甲
            翻譯的不錯。

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-24 10:44 by 炮灰九段
            好人!

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-24 12:53 by HuuYuu
            Good job.

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-24 22:19 by cexer
            博主辛苦了,一直在追著看,在尋找這樣一種標準。

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-07-28 20:54 by hjbai
            Great job. Thanks! :)

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-08-20 13:30 by caicai
            謝謝博主

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-08-27 20:37 by 大壯
            謝謝博主

            # re: [譯]Google C++編程風格指南(八)[完]  回復  更多評論   

            2008-10-04 13:59 by lily
            "使用const TCHAR *而不是LPCTSTR;"

            規(guī)則說的對,例子似乎不對, TCHAR 是windows 自己定義的,不符合ansi c 規(guī)范,就和所謂CHAR 一樣. 符合規(guī)范的是_TCHAR. ansi 的東西對于一些衍生產(chǎn)品喜歡開頭加 _ .

            正確說法:
            使用 const _TCHAR * 而不是 LPCTSTR

            thanks for writing

            EOF
            久久久久亚洲av无码专区喷水| 99久久成人国产精品免费| 午夜精品久久久久久毛片| 久久99精品国产麻豆不卡| 国内精品久久久久影院薰衣草 | 久久久久亚洲爆乳少妇无| 精品国产一区二区三区久久久狼| 欧美日韩精品久久久免费观看| 色综合久久夜色精品国产| 久久久国产精华液| 狠狠色丁香婷婷久久综合五月| 亚洲人成无码www久久久| 久久午夜夜伦鲁鲁片免费无码影视| 久久综合狠狠色综合伊人| 国产91久久综合| 亚洲色欲久久久综合网东京热 | 久久人人爽人人爽人人片AV东京热 | 久久精品成人欧美大片| 久久久久一本毛久久久| 欧美日韩久久中文字幕| 精品久久久久久亚洲精品| 免费观看成人久久网免费观看| 日本加勒比久久精品| 亚洲欧美日韩久久精品第一区| 久久亚洲sm情趣捆绑调教| aaa级精品久久久国产片| 久久综合久久久| 东方aⅴ免费观看久久av| 久久精品国产亚洲AV高清热| 久久久久99精品成人片牛牛影视| 久久久久久亚洲精品影院| 国产美女久久精品香蕉69| 久久午夜无码鲁丝片午夜精品| 久久99亚洲网美利坚合众国| 欧美麻豆久久久久久中文| 大伊人青草狠狠久久| 色综合久久久久无码专区| 久久综合亚洲色HEZYO国产| 老司机国内精品久久久久| 久久精品国产亚洲AV大全| 精品久久久久香蕉网|