我在走出校門的時候非常的“輕狂”,認為自己在學校裡面已經學得夠多了,工作就只算是小菜一碟。但在工作中屢次碰壁之後,我才發現自己當時的想法是多麼的天真。我們踏上工作崗位,一切幾乎都要從零開始。
對於大家“非常熟悉”的C語言來說,我們在學校裡面學的非但不夠用,而且在很多地方對大家還有“誤導”的作用,讓我們認為編程就是那麼一回事了。
我舉譚浩強老師寫的《C程序設計》的“函數”那一章的某程序為例子加以說明。程序如下:
#include <stdio.h> void main() { float fac(int n); int n; float y; printf("input an integer number: "); scanf("%d", &n); y = fac(n); printf("%d!=%10.0f\n", n, y); } float fac(int n) { float y; if(n<0) { printf("n<0, dataerror!"); } else if(n == 0 || n == 1) f=1; else f=fac(n-1)*n; return(f); }
對於以上程序,至少存在以下問題:
第一,變量命名不規范,而且沒有初始化。對於該程序,main函數裡的變量n、y,fac函數裡面的變量f的命名均不規范,不能讓人一眼就看出它是什麼意思、要做什麼操作。這對於一小段程序來說,影響還不是很大,但如果代碼行數達到數千行,那麼閱讀起來就比較的費力。另外,以上說的三個變量只是定義了,並沒有初始化,這在實際項目中也是不允許的。
第二,函數的命名不規范,且沒有在主函數開始之前進行聲明。本程序中的fac函數表示什麼意思?如果你沒有看程序開始之前的文字,那麼只有通過閱讀函數裡面的代碼才能知道。在實際項目中,函數命名非常的重要,因為一般涉及到函數個數較多,如果不能通過函數名稱來了解其作用,而必須通過閱讀代碼才能獲悉,那麼工作效率是很低的。此外,我們一般不在調用該函數的函數的內部來對被調函數進行聲明,而是應該將聲明放在外部,最好新建一個頭文件來對程序裡面出現的函數進行聲明。