一個C程式是由一個或者多個函數組成,並必須只有一個main()函數。我建議不要使用void main的形式,同建議用 int main 然後return 0;的形式,至於為什麼要這樣做,我也不知道。 一個文件內、一個函數內、一個控制語句內、一對花括弧內,都可以稱為一個代碼塊。 聲明與定義 int n ...
一個C程式是由一個或者多個函數組成,並必須只有一個main()函數。我建議不要使用void main的形式,同建議用 int main 然後return 0;的形式,至於為什麼要這樣做,我也不知道。
一個文件內、一個函數內、一個控制語句內、一對花括弧內,都可以稱為一個代碼塊。
聲明與定義
int num;這就是聲明,而且是定義性聲明。
聲明(declaration)指定了一個變數的標識符,用來描述變數的類型,是類型還是對象,或者函數等。
定義(defining)是對聲明的實現或者實例化。
聲明有兩種情況:需要建立存儲空間的 和 不需要建立存儲空間的 ,前者是 定義性聲明(defining declaration),後者是 引用性聲明(referncing declaration)
廣義的來看,聲明包含定義,但不是所有的聲明都是定義。一般情況下,把建立存儲空間的聲明稱之為“定義”,而把不需要建立存儲空間稱之為“聲明”
好像還不大明白?沒關係,只需知道定義和聲明不大一樣就行了
在C語言中,所有變數在使用前必須定義。
函數原型是聲明的一種形式
聲明變數的好處:
- 把所有變數放在一起,可以讓讀者更容易掌握程式的內容(如果名字不能表達清楚,可以用註釋加以解釋,這也是良好的編程技巧之一)
- 在開始編程之前,考慮一下需要聲明的變數會促使自己做一些計劃工作
- 可以幫助避免變數名拼寫錯誤,比如在後面代碼中寫錯了,編譯器會幫你找到錯誤所在。
程式可讀性技巧
- 選擇有意義的變數名和使用註釋
- 使用空行分隔一個函數的概念上的多部分。比如分隔定義部分和動作部分
- 每個語句使用一行,for迴圈括弧內的除外。
- 在程式開始處使用註釋,說明瞭文件的名稱和程式的目的。
調試
語法錯誤:是指把正確的C符號放在了錯誤的位置
編譯器的另一個毛病是發現錯誤的位置比真正的錯誤位置要滯後一行。
語義錯誤:就是意思上的錯誤。語法是正確的,但輸出的結果卻不是想要的,一般是在代碼中出現了語義錯誤
在程式的幾個關鍵點出加上額外的printf語句以監視所選變數的值可以幫助查找語義錯誤。
程式狀態:通過手工方式一步一步跟蹤程式,並記錄每個變數,這樣就就可以監視程式狀態。
檢查程式狀態還可以用調試器,有靜態調試和動態調試。