四級上機編程修養

來源:文萃谷 2.95W

1、版權和版本

四級上機編程修養

———————

好的程序員會給自己的每個函數,每個文件,都註上版權和版本。

對於C/C 的文件,文件頭應該有類似這樣的註釋

/************************************************************************

*

* 文件名:network.c

*

* 文件描述:網絡通訊函數集

*

* 創建人: Hao Chen, 2003年2月3日

*

* 版本號:1.0

*

* 修改記錄:

*

*

************************************************************************/

而對於函數來説,應該也有類似於這樣的註釋:

/*================================================================

*

* 函 數 名:XXX

*

* 參 數:

*

* type name [IN] : descripts

*

* 功能描述:

*

* ..............

*

* 返 回 值:成功TRUE,失敗FALSE

*

* 拋出異常:

*

* 作 者:ChenHao 2003/4/2

*

*

================================================================*/

這樣的描述可以讓人對一個函數,一個文件有一個總體的認識,對代碼的易讀性和易維護

性有很大的好處。這是好的作品產生的開始。

2、縮進、空格、換行、空行、對齊

————————————————

i) 縮進應該是每個程序都會做的,只要學程序過程序就應該知道這個,但是我仍然看過不

縮進的程序,或是亂縮進的程序,如果你的公司還有寫程序不縮進的程序員,請毫不猶豫

的開除他吧,並以破壞源碼罪起訴他,還要他賠償讀過他程序的人的精神損失費。縮進,

這是不成文規矩,我再重提一下吧,一個縮進一般是一個TAB鍵或是4個空格。(最好用TAB

鍵)

ii) 空格。空格能給程序代來什麼損失嗎?沒有,有效的利用空格可以讓你的程序讀進來

更加賞心悦目。而不一堆表達式擠在一起。看看下面的代碼:

ha=(ha*128 *key )%tabPtr->size;

ha = ( ha * 128 *key ) % tabPtr->size;

有空格和沒有空格的感覺不一樣吧。一般來説,語句中要在各個操作符間加空格,函

數調用時,要以各個參數間加空格。如下面這種加空格的和不加的:

if ((hProc=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid))==NULL){

}

if ( ( hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid) ) == NULL ){

}

iii) 換行。不要把語句都寫在一行上,這樣很不好。如:

for(i=0;i’9’)&&(a[i]<’a’||a[i]>’z’)) break;

我拷,這種即無空格,又無換行的程序在寫什麼啊?加上空格和換行吧。

for ( i=0; i

if ( ( a[i] < ’0’ || a[i] > ’9’ ) &&

( a[i] < ’a’ || a[i] > ’z’ ) ) {

break;

}

}

好多了吧?有時候,函數參數多的時候,最好也換行,如:

CreateProcess(

NULL,

cmdbuf,

NULL,

NULL,

bInhH,

dwCrtFlags,

envbuf,

NULL,

&siStartInfo,

&prInfo

);

條件語句也應該在必要時換行:

if ( ch >= ’0’ || ch <= ’9’ ||

ch >= ’a’ || ch <= ’z’ ||

ch >= ’A’ || ch <= ’Z’ )

iv) 空行。不要不加空行,空行可以區分不同的程序塊,程序塊間,最好加上空行。如:

HANDLE hProcess;

PROCESS_T procInfo;

/* open the process handle */

if((hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid)) == NULL)

{

return LSE_MISC_SYS;

}

memset(&procInfo, 0, sizeof(procInfo));

oc = pid;

oc = hProcess;

|= MSC***A_PROC;

return(0);

v) 對齊。用TAB鍵對齊你的一些變量的聲明或註釋,一樣會讓你的程序好看一些。如:

typedef struct _pt_man_t_ {

int numProc; /* Number of processes */

int maxProc; /* Max Number of processes */

int maxProc; /* Max Number of processes */

int numEvnt; /* Number of events */

int maxEvnt; /* Max Number of events */

HANDLE* pHndEvnt; /* Array of events */

DWORD timeout; /* Time out interval */

HANDLE hPipe; /* Namedpipe */

TCHAR usr[MAXUSR];/* User name of the process */

熱門標籤