編碼的習慣和編碼的規範在編程中佔據了重要地位。良好的編碼習慣有利於降低代碼的出錯率,也便於代碼的調試,規範編碼則增強了代碼的可讀性,也使代碼的交流成為可能。本篇將詳細介紹成對編碼的方法,規範編碼留在下篇講述。
成對編碼的基本思想極為簡單,就是——“成對”。成對現象在C語言中是極為普遍的,任何一個函數,其函數體都是以成對的"{}"所括起來的。從這一點我們可以給出成對編碼的基本方法,下面以編寫一個“Hello World”程式為例講述該方法。
編碼的第一步:
int main(void)
{
}
打一個"{"斷行符號後立即就打一個"}"。
編碼的第二步:
int main(void)
{
printf("Hello World!");
getch();
return 0;
}
將游標移至上一行末打一斷行符號,再按下Tab鍵,之後就可以在兩個括弧之間插入代碼。
要注意的是,我們在第一步就將函數的括弧成對的給出,我們打了一個"{",就應該毫不猶豫地給出一個"}",這就是成對編碼。在第二步,我們將游標移至兩個大括弧之間,在中間插入代碼。此點極為重要,我們徹底的摒棄了落後的線性編碼(即一個字元一個字元的往下寫),而是跳躍性的非線性編碼。此法極妙,在編碼的任何一步,我們都能保證代碼是可通過編譯的,可運行、可調試。至少也能保證不會出現少打一個或多個"}"的編譯錯誤。
此基本方法也可應用於任何一個使用"{}"的語句,如if、for等語句,例如以下代碼:
第一步:
int main()
{
int i;
for(i=0;i<10;i++)
{
}
}
第二步:
int main()
{
int i;
for(i=0;i<10;i++)
{
printf("成對編碼是個好方法!/n");
}
}
第三步:
int main()
{
int i;
for(i=0;i<10;i++)
{
printf("成對編碼是個好方法!/n");
}
getch();
return 0;
}
成對編碼的另一個推廣就是,對malloc()和free()也可以看作是成對的。在編碼是,我們如果寫了一個malloc();語句,就應該毫不猶豫地緊接著寫一個free();語句,剩下的就是在裡昂句之間插入代碼,這樣就能保證不會出現記憶體流失的問題。
成對編碼還可以推廣至任何一個類似於malloc()和free()這樣成對的語句。例如在使用一個鏈表時,我通常是成對地寫出InitList()和DestroyList()兩個語句,然後再將對鏈表的操作插入到兩句之間。
大家很快就能體會到成對編碼的優越性,相對於線性編碼,成對編碼幾乎不會出現代碼的編譯錯誤,代碼在任何時候都是可運行、可調試的。本人在編寫的眾多程式中全部採用成對編碼法,幾乎沒有出現編譯錯誤,真是很爽。
目前的許多C語言教材都僅注重講解文法等內容而對編碼方法幾乎是隻字不提,我們在閱讀代碼時,也使習慣於從上到下線性閱讀,養成了線性編碼習慣。而成對編碼作為一種高效的編碼方法,我們有必要認真學習和掌握。同時在閱讀代碼時也可以採用成對閱讀的方法,對閱讀和理解代碼和市很有協助。