宣告 & 定義 (Declaration, Definition)
宣告 & 定義 教學與筆記。
說明
宣告 (Declarations):
讓程式得知某個變數的型態和名稱,但不配置其空間
。
定義 (Definitions):
表示為這個變數配置了空間
,也可能給予初始值
。
兩者差別在於:是否配置空間給該變數
1 | // 只做宣告,不配置空間 |
使用變數
若此變數要在多個檔案使用(外部連結性全域變數),請在某一個檔案定義
它,而其他每個用到該變數的檔案都要宣告
該變數。
各種錯誤
變數
不能只有宣告,而沒有定義,會發生 linking error。且只能定義一次
。函式
就可以只有宣告,沒有定義。變數若定義不只一次,會發生重複定義的錯誤。
可以宣告很多次,但定義必須是唯一的。
程式有多個檔案
『把宣告寫在 .h 檔,把定義寫在 .c 檔』
若沒按照這個原則,在 .h 檔裡放了定義,當某 .h 檔有多個 .c 檔去 include 它,就會產生重複定義的錯誤。
宣告 & 定義 (Declaration, Definition)
https://meowlucian.github.io/C/Basic/Declaration-Definition/