.h檔案作為介面存在的。所謂介面就是指型別定義、變數宣告、函式宣告等等,基本上不會在.h裡面放置函式實現。.c裡面才真正實現函式。
比方說,我寫乙個work的實現:
#ifndef work_h
#define work_h
//你也可以在這裡宣告變數,或者定義型別、結構體
void work();//注意這只是乙個函式宣告
#endif
//work函式的定義,或者說實現
void work()
這樣一來,如果你想用work.c中的work函式,只要#include "work.h"就可以了。
小技巧:
#ifndef work_h
#define work_h
#endif
這三行**是為了保證在編譯某乙個.c或.cpp檔案時,work.h標頭檔案只編譯一次。
比方你在main.c裡面打了10次#include "work.h",這樣預處理的時候會向main.c中拷貝10次work.h的**(預處理時實際上會用work.h中的**替代#include "work.h"這行**),有了那三行就可以保證只有第乙個拷貝的work.h參與編譯,剩下的九個都跳過。(因為work_h在第一次#include的時候被定義了,往後就不會編譯#ifndef .. #endif 中間的**了)
關於Ubuntu的環境變數檔案
ubuntu 系統的環境變數儲存在以下5個配置檔案中 etc environment 系統登入時讀取的第乙個檔案,用於為所有程序設定環境變數 etc profile 系統登入時讀取的第二個檔案,會設定所有使用者的環境變數 profile 對應當前登入使用者的 profile 檔案,用於定製當前使用者...
ubuntu下CH34 串列埠驅動安裝
由於之前的錯誤操作,將tx2版本的串列埠驅動安裝到電腦中了,導致現在插上usb轉ttl毛線反應都沒有,查了一上午,終於找到了結果,現在趁熱把過程梳理出來,給大家作為參考。輸入uname r可以得到自己的ubuntu核心版本 我的核心版本是 zxy zxy pc uname r 4.15.0 33 g...
ch376檔案管理晶元
ch376是檔案管理控制晶元,用於微控制器系統讀寫u 盤或者sd 卡中的檔案。ch376支援usb裝置方式和usb主機方式,並且內建了usb通訊協議的基本韌體,內建了處理mass storage海量儲存裝置的專用通訊協議的韌體,內建了sd卡的通訊介面韌體,內建了fat16和fat32以及fat12檔...