1. 程式人生 > >多個.c檔案和標頭檔案

多個.c檔案和標頭檔案

在實際的開發專案當中 ,我們通常需要自己編寫自己的標頭檔案。下面以實現add為例子來寫一個多檔案

標頭檔案:
這裡寫圖片描述

結構體初始化函式:
這裡寫圖片描述
add業務函式:
這裡寫圖片描述

主業務函式:
這裡寫圖片描述

main函式:
這裡寫圖片描述

所有的.c和標頭檔案都寫好之後,gcc編譯生成二進位制可執行檔案haha ./haha執行程式

這裡寫圖片描述

gcc main.c func1.c func2.c func3.c -o haha

tips

1 雙引號“”用於包含標頭檔案的時候,只能在當前目錄下被找到,如果當前目錄下沒有這個檔案,就會去預設的固定路徑中(c庫函式等在/usr/include/這個路徑下)找,找不到就報錯!
2<>是系統內建好的環境變數,指引找到的固定路徑
3 全域性變數不要寫在標頭檔案裡面,因為我的每一個.c檔案都可以操作這個全域性變數,有可能不小心改變了值

如果我將這個例子中的標頭檔案head.c從當前目錄移到其他路徑下如圖:
這裡寫圖片描述
此時就沒辦法找到我的標頭檔案 直接出現報錯!!

解決這個標頭檔案找不到的辦法有三個
(1)在寫標頭檔案時帶上它的路徑(絕對或者相對都可以)
這裡寫圖片描述
(2)把自己寫的標頭檔案複製一份到預設的庫檔案路徑下(/usr/include/)
但是這個方法不好!!!預設路徑下已經有很多的庫檔案了!!
(3)通過-I引數來指定標頭檔案的路徑(絕對和相對都可以)

gcc main.c func1.c func2.c func3.c -o haha -I./temp

條件編譯

防止標頭檔案重複包含

#ifndef _HEAD_H_//如果沒有這個標頭檔案則執行下面的,有的話下面的都不會執行!!!
#define _HEAD_H_ #endif