成功軟件開(kāi)發(fā)者的9種編程習慣
這樣注釋?zhuān)欢?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/C語(yǔ)言">C語(yǔ)言的人也會(huì )看懂各語(yǔ)句意味著(zhù)什么,各變量指的是什么。寫(xiě)注釋是好習慣,但不要什么都注釋。注釋是為了好理解,不是為了寫(xiě)長(cháng)編文章。
int profit = 1;
/* 贏(yíng)利等于1 ?? */
int loss = 0;
/* 虧損等于 0 ?? */
/* 如果贏(yíng)利等于1 */
if(profit == 1)
/* 打印出“得贏(yíng)利啦”??*/
printf("We made a profit!n");
/* 如果不是 */
else
/*打印出“我們虧損啦”*/
printf("We made a loss!n");
這樣注釋是浪費時(shí)間。一般是定變量或變量值的時(shí)候需要注釋?zhuān)€有說(shuō)明程序的目的,使用某個(gè)函數,procedule等的時(shí)候也需要。
7. 起名要合理
程序,變量,procedure,structure等名一定要跟它的內容聯(lián)系起來(lái),變量不要起名如”x”,”y”,”z”
也許你會(huì )說(shuō)筆者在上面舉的例子里也用了x,y等,可筆者這樣做的理由是他不牽涉到其他程序,實(shí)際開(kāi)發(fā)軟件的時(shí)候,筆者當然會(huì )使用有意義的變量名。請看下面例子:
void x(int a, int b)
{
int z;
z = a + b;
printf("z is %dn", z);
}
在這,我們可以知道x做什么,但不知道它意味著(zhù)什么。a,b,z也一樣。讓我們稍微改過(guò)來(lái)再看吧:
void sum_of_ages(int jacks_age, int jills_age)
{
int total_age;
total_age = jacks_age + jills_age;
print("total_age is %dn", total_age);
}
雖然沒(méi)有注釋?zhuān)菀卓闯鰜?lái)要做什么。起名起得好,沒(méi)有注釋也可以。
8. 確認Buffer
要時(shí)時(shí)確認對設定的排列或變量的大小,以避免數據混亂或導致系統出問(wèn)題。請看下面使用者輸入數據的例子: char city[10];
/* 為都市名稱(chēng)的排列 */
printf("Enter a city name: ");
scanf("%s", city);
printf("City is %sn", city);
在這里,都市名稱(chēng)設定為10字(英文字)以?xún)?。如果使用者輸?0字以上的都市名稱(chēng)會(huì )怎么樣呢?可以說(shuō)程序失敗或覆蓋Buffer里面的數據。不管怎樣,不要做冒險的事,你要檢查文字的長(cháng)度:
char city[10];
/*為都市名稱(chēng)的排列*/
printf("Enter a city name: ");
fgets(city, sizeof(city), stdin);
printf("City is %sn", city);
上面已修改的程序是:如果使用者輸入10字以上的都市名,只接受Buffer能接受的長(cháng)度為止,其外的會(huì )不接受。
9. 絕對不相信使用者
這是很重要的規律。千萬(wàn)不要相信將要使用你的軟件的人,不要認為使用者會(huì )按你希望的方式來(lái)操作,反而把他們想成專(zhuān)門(mén)發(fā)現程序毛病的人。舉例說(shuō),上面的程序就是為了那些輸入都市名更長(cháng)的的使用者而確認文字長(cháng)度的。
象C語(yǔ)言需要明確的數據形式的開(kāi)發(fā)工具使用者,要記住確認輸入數據形式和程序數據形式是否一致,不然會(huì )出現問(wèn)題。
磨刀不誤砍材工
以上的編程習慣是為你自己的方便。實(shí)際編程之前,要多做準備(分析,設計)。雖然稍麻煩,但為了編出易懂整齊的程序,不要舍不得花時(shí)間準備,不然以后會(huì )需要更多的時(shí)間來(lái)修改,擴展你的程序的。
評論