程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 提前認識軟件開發(3) 學校C語言教材的缺陷

提前認識軟件開發(3) 學校C語言教材的缺陷

編輯:關於C語言

我在走出校門的時候非常的“輕狂”,認為自己在學校裡面已經學得夠多了,工作就只算是小菜一碟。但在工作中屢次碰壁之後,我才發現自己當時的想法是多麼的天真。我們踏上工作崗位,一切幾乎都要從零開始。

對於大家“非常熟悉”的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函數表示什麼意思?如果你沒有看程序開始之前的文字,那麼只有通過閱讀函數裡面的代碼才能知道。在實際項目中,函數命名非常的重要,因為一般涉及到函數個數較多,如果不能通過函數名稱來了解其作用,而必須通過閱讀代碼才能獲悉,那麼工作效率是很低的。此外,我們一般不在調用該函數的函數的內部來對被調函數進行聲明,而是應該將聲明放在外部,最好新建一個頭文件來對程序裡面出現的函數進行聲明。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved