青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

C/C++源代碼書寫規范

1. 在.h/.cpp的開頭應有一段格式統一的說明,內容包括:
a. 文件名 (FileName);
b. 創建人 (Creator);
c. 文件創建時間 (Date);
d. 簡短說明文件功能、用途 (Comment)。
例:
//////////////////////////////////////////?
//?
//?FileName:?GetVersion.h?
//?Creator:?Liu?Haifeng?
//?Date:?2002-10-28?
//?Comment:?Get?file?version?information?
//?
//////////////////////////////////////////?

2.對于主要功能函數應有注釋說明。內容包括:功能、入口/出口參數,必要時還可有備注或補充說明,對于函數中的主要功能代碼,也應有注釋說明。注釋以英文為主。
例:
//////////////////////////////////////////?
//?
//Remarks:?
//?Check?file?whether?exist?
//?
//Parameters:?
//?LPCTSTR?lpszPathName?:?Input?full?path?name?
//?
//Return?values:?
//?int?:?Non-zero?means?success?
//?Zero?means?failure?
//?
//////////////////////////////////////////?

3. 每列代碼的長度推薦為80列,最長不得超過120列;折行以對齊為準。
例:HANDLE KSOpenFile(const char cszFileName[],
int nMode);
或者:
BOOL?KSReadFile(?
HANDLE?hFile,?
void?*pvBuffer,?
int?nReadSize,?
int?*pnReadSize?
);?

4. 循環、分支代碼,判斷條件與執行代碼不得在同一行上。
例:正確:
if (n == -2)
n = 1;
else
n = 2;
不得寫做:
if (n == -2) n = 1;
else n = 2;
5. 指針的定義,* 號既可以緊接類型,也可以在變量名之前。
例:可寫做:int* pnsize;
也可寫做:int *pnsize;
但不得寫做:int * pnsize;
6. 在類的成員函數內調用非成員函數時,在非成員函數名前必須加上"::"。
例:::Sleep(2000);
7. 函數入口參數有缺省值時,應注釋說明。
例:
BOOL KSSaveToFile(
const char cszFileName[],
BOOL bCanReplace /* = TRUE */
);
或者:
BOOL KSSaveToFile(
const char cszFileName[],
BOOL bCanReplace // = TRUE
);
8. else if 必須寫在一行。
9. 與‘{’、‘}’有關的各項規定:
9.1‘{’、‘}’應獨占一行。在該行內可有注釋。
例:正確:
for (i = 0; i < cbLine; i++)
{ // .....
printf("Line %d:", i);
printf("%s\n", pFileLines);
}
不得寫做:
for?(i?=?0;?i?<?cb;?i++)?
{?printf("Line?%d:",?i);?
printf(
"%s\n",?pFileLines);?
}
?

9.2‘{’必須另起一行,‘{’之后的代碼必須縮進一個Tab。‘{’與‘}’必須在同一列上。
例:正確:
if (i > 0)
{
m = 1;
n++;
}
不得寫做:
if?(i?>?0)?{?
m?
=?1;?
n
++;?
}
?

例外:
if?(i?==?0)?
{?ASSERT(FALSE);?return;?}?

9.3 在循環、分支之后若只有一行代碼,雖然可省略‘{’、‘}’,但不推薦這么做。若省略后可能引起歧義,則必須加上‘{’、‘}’。
例:正確:
if?(n?==?-2)?
n?
=?1;?
else?
n?
=?2;?

或者:
if?(n?==?-2)?
{?n?=?1;?}?
else?if?(n?!=?nTemp)?
{?n?=?2;?}?
else?
{?n?=?3;?}?

不得寫做:
if?(n?==?-2)?
n?
=?1;?
else?if?(n?!=?nTemp)?
n?
=?2;?
else?
n?
=?3;?

不推薦:
if?(i?<?1)?
{?n?=?1;?}?
else?
{?
if?(i?==?1)?
{?n?=?2;?}?
else?
{?
if?(i?>?1)?
{?n?=?3;?}?
}
?
}
?

10. 與空格有關的各項規定。
10.1 在所有兩目、三目運算符的兩邊都必須有空格。在單目運算符兩端不必空格。但在‘->’、‘::’、‘.’、‘[’、‘]’等運算符前后,及‘&’(取地址)、‘*’(取值)等運算符之后不得有空格。
例:正確:
int n = 0, nTemp;
for (int i = nMinLine; i <= nMaxLine; i++)
不得寫做:
int n=0, nTemp;
for ( int i=nMinLine; i<=nMaxLine; i++ )
10.2 for、while、if 等關鍵詞之后應有1個空格,再接‘(’,之后無空格;在結尾的‘)’前不得有空格。
例:正確:
if (-2 == n)
不得寫做:
if(-2 == n)

if ( -2 == n )
等等。
10.3 調用函數、宏時,‘(’、‘)’前后不得有空格。
例:正確:
printf("%d\n", nIndex);
不得寫做:
printf ("%d\n", nIndex);
printf( "%d\n", nIndex );
等等。
10.4 類型強制轉換時,‘(’‘)’前后不得有空格
例:可寫做:
(KSFile*)pFile;
也可寫做:
(KSFile *)pFile
不得寫做:
( KSFile* )pFile
( KSFile * ) pFile
11. 與縮進有關的各項規定
11.1 縮進以 Tab 為單位。1 個 Tab 為 4 個空格
11.2 下列情況,代碼縮進一個 Tab:
1. 函數體相對函數名及'{'、'}'。
例:
int?Power(int?x)?
{?
return?(x?*?x);?
}
?

2. if、else、for、while、do 等之后的代碼。
3. 一行之內寫不下,折行之后的代碼,應在合理的位置進行折行。若有 + - * / 等運算符,則運算符應在上一行末尾,而不應在下一行的行首。
11.3 下列情況,不必縮進:switch 之后的 case、default。
例:
switch?(nID)?
{?
case?ID_PLAY:?
?
break;?
case?ID_STOP:?
?
break;?
default:?
?
break;?

12.對于涉及到系統的功能調用,要求使用系統提供的宏,不得直接使用具體的數值。
例: char szSystemPath[MAX_PATH] = {0}; 正確
char szSystemPath[260] = {0}; 錯誤
13.關于函數編寫的規定
13.1 除了非常簡單的函數或者沒有必要,函數需要有返回值,并且推薦
返回值的類型為int,成功時為 true,失敗時為false。不推薦直接使用1和0來表示。
13.2 在函數內部變量定義全部放在函數的開始處,不能在代碼中間出現 變量定義。變量定義需要初始化值,一般是0、false、NULL等。
13.3 程序員自行編寫的函數不推薦使用DWORD等指明字節長度的變量 類型,推薦使用unsigned long等變量類型。對于ULONG等vc系統定義的變量類型,推薦使用unsigned long 來代替。如果調用系統API,在MSDN中已經指明了是DWORD等類型,則可以使用。
13.4 推薦使用int nResult作為函數自身的返回值變量,int nRetCode、BOOL bRetCode作為調用其他函數的返回值變量。
13.5 推薦使用goto語句來統一函數出口,goto語句一般只能跳轉到一個函數出口,最多只能有兩個,出口標識必須命名為Exit0和Exit1。在出口處必須顯式檢查曾經申請過的系統資源(如內存),并且進行釋放。
13.6 如果編寫DLL,除非特殊情況,導出函數的調用類型必須是__stdcall,便于多模塊協同工作。

附錄:
1.函數編寫示范
/////////////////////////////////////////////////////////////////////?
//?
//?Remarks:?
//?Get?file?version?information?
//?
//?Parameters:?
//?[in]?const?char?cszPathName?:?Input?file?path?name?
//?[out]?PVERSION_INFO?*pVersionInfo?:?File?version?information?
//?
//?Return?values:?
//?int?:?Non-zero?means?success,?zero?means?failure?
//?
/////////////////////////////////////////////////////////////////////?
int?GetFileVersion(const?char?cszPathName,?PVERSION_INFO?*pVersionInfo)?
{?
int?nResult?=?false;?
int?nRetCode?=?false;?
char?szSystemPath[MAX_PATH]?=?{0};?
nRetCode?
=?IsFileExist(cszPathname);?
if?(!nRetCode)?
goto?Exit0;?
//Others?code?here?
nResult?=?true;?
Exit0:?
return?nResult;?
}

posted on 2006-04-21 18:01 楊粼波 閱讀(620) 評論(0)  編輯 收藏 引用 所屬分類: 文章收藏

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久久久久久久久久久一区| 久久成人久久爱| 久久午夜av| 亚洲影院免费观看| 亚洲尤物在线| 亚洲女与黑人做爰| 亚洲一区免费视频| 欧美在线你懂的| 欧美在线免费| 久久久美女艺术照精彩视频福利播放| 欧美中在线观看| 久久激情五月丁香伊人| 欧美一区二区在线观看| 久久精品国产77777蜜臀| 久久伊人精品天天| 91久久在线观看| 亚洲精品三级| 亚洲欧美变态国产另类| 久久精品首页| 欧美日韩国语| 国产亚洲网站| 99精品视频免费观看| 午夜国产精品视频免费体验区| 久久久欧美精品| 亚洲欧洲精品成人久久奇米网| 亚洲一区二区三区视频播放| 久久色中文字幕| 欧美香蕉大胸在线视频观看| 国内久久视频| 亚洲一线二线三线久久久| 久久免费视频在线观看| 亚洲人成网站999久久久综合| 亚洲欧美日韩天堂| 欧美激情亚洲激情| 激情欧美国产欧美| 午夜精品久久久久久久| 亚洲第一天堂av| 久久国产99| 欧美亚州一区二区三区| 亚洲国产一区二区在线| 久久se精品一区二区| 亚洲精品一区二区在线观看| 国产精品成人观看视频免费| 亚洲国产精品免费| 午夜精品久久久久久久久| 欧美成人免费一级人片100| 国产精品v欧美精品v日本精品动漫 | 欧美日韩福利在线观看| 国产欧美一区二区三区沐欲| 亚洲最新色图| 欧美黄在线观看| 久久久福利视频| 国产精品视频自拍| 夜久久久久久| 欧美国产日韩在线观看| 久久久精品国产99久久精品芒果| 国产精品v片在线观看不卡| 日韩一级裸体免费视频| 欧美激情一区二区三区在线视频观看 | 在线精品观看| 老司机免费视频一区二区| 亚洲视频国产视频| 日韩视频在线永久播放| 欧美日韩成人综合在线一区二区| 亚洲三级网站| 91久久精品国产91久久性色tv| 久久婷婷一区| 亚洲欧洲日韩在线| 亚洲黄色高清| 欧美日韩的一区二区| 日韩午夜三级在线| 亚洲精品日日夜夜| 国产精品久久久久久久久动漫| 亚洲在线网站| 亚洲欧美在线aaa| 国产日韩一区二区三区| 久久免费少妇高潮久久精品99| 久久久不卡网国产精品一区| 亚洲人www| 亚洲精选久久| 国产精品久久久久久久久久久久久久| 亚洲永久在线观看| 午夜亚洲精品| 红杏aⅴ成人免费视频| 久久精品一区二区三区中文字幕 | 亚洲一区二区三区涩| 国产欧美日韩免费| 久久综合影视| 久久香蕉国产线看观看网| 伊人久久亚洲热| 亚洲精品久久久一区二区三区| 国产精品视频成人| 美女久久一区| 欧美成人精品在线播放| 国产午夜精品在线| 欧美激情区在线播放| 欧美日韩国产三级| 久久av免费一区| 欧美成人精品在线播放| 欧美一级专区免费大片| 欧美jizzhd精品欧美喷水| 亚洲免费视频一区二区| 久久久精品欧美丰满| 99精品欧美一区| 久久精品视频在线播放| 99视频在线精品国自产拍免费观看| 亚洲视频在线视频| 亚洲精品中文字幕在线| 欧美亚洲一区二区在线观看| 日韩视频亚洲视频| 久久久久久久一区二区三区| 亚洲网站视频福利| 久久亚洲二区| 欧美在线免费| 欧美日韩精品欧美日韩精品一 | 久久精品国产精品亚洲| 久久人人爽人人爽| 欧美在线视屏| 欧美视频一区二区三区…| 国产精品视频成人| 91久久精品国产91久久性色tv| 国产精品亚洲аv天堂网| 亚洲国产精品电影| 伊人夜夜躁av伊人久久| 免费欧美视频| 国产精品久久久久aaaa樱花| 亚洲丶国产丶欧美一区二区三区 | 国产日韩欧美精品| 一区二区三区视频在线看| 亚洲人成在线播放网站岛国| 欧美国产日韩亚洲一区| 国产日韩欧美电影在线观看| 日韩一区二区免费高清| 亚洲欧洲综合另类| 久久久久久久久岛国免费| 欧美中文字幕在线视频| 国产精品一区久久久| 免费观看久久久4p| 精品动漫3d一区二区三区免费版 | 欧美一二区视频| 欧美日韩在线精品| 亚洲精品小视频| 亚洲高清自拍| 猫咪成人在线观看| 欧美激情一区二区三区成人| 最新日韩精品| 欧美精品一区视频| 99pao成人国产永久免费视频| 亚洲一区亚洲二区| 欧美亚洲三级| 久久久久综合网| 黄色国产精品| 久久久久www| 欧美大胆a视频| 亚洲国产精品一区制服丝袜| 久久午夜羞羞影院免费观看| 久久夜色精品国产欧美乱| 在线日韩成人| 欧美日韩国产小视频| 一本色道久久综合亚洲精品按摩 | 亚洲一区二区三区免费观看 | 亚洲国产一区二区三区青草影视| 亚洲精品久久久久久久久久久 | 国内成人自拍视频| 美女视频网站黄色亚洲| 91久久国产精品91久久性色| 一区二区国产精品| 国产区精品视频| 久久久久久久久久久久久久一区| 欧美国产一区二区| 亚洲一区二区三区中文字幕在线| 国产精品久久久久久久app| 久久精品首页| 99精品视频免费观看| 久久精品国产亚洲5555| 亚洲欧洲精品一区二区| 国产精品午夜在线| 免费久久99精品国产自在现线| 99在线精品免费视频九九视| 国产一在线精品一区在线观看| 久久这里有精品视频| 亚洲精品视频免费| 午夜欧美视频| 日韩午夜在线视频| 欧美日韩一级黄| 亚洲一区二区精品在线| 免费成人黄色av| 欧美一区二区三区精品电影| 久久久久久电影| 免费成人你懂的| 午夜电影亚洲| 91久久国产自产拍夜夜嗨| 久久精品国产精品亚洲精品| 一道本一区二区| 在线成人免费观看| 国产精品久久久一区麻豆最新章节 | 亚洲欧洲综合另类在线| 久久精品一区二区三区四区 | 欧美成人嫩草网站| 久久久夜夜夜|