❶ 51單片機C語言的頭文件,及其頭文件的功能
reg51.h
常見的是這個頭文件。
這是單片機C語言編譯器自帶的庫函數,相當於單片硬體的底層驅動程序。
比如說,畝者慎在有頭文件的情況下,可以直接使用P0作為變數進行讀寫操作,這是因為嫌乎頭文件里對P0做了描述,在軟體和硬體之間建立了溝通橋梁。
還有其他數據處理類頭文件,比如說math.h,這是數學函數庫頭文迅敬件。有了它,就可以直接調用一些復雜的數學處理函數,而不必用戶自己設計,例如反正弦函數。
❷ 基於51單片機的C語言編程的頭文件問題
一、頭文件位置
#include <xxx.h> 優先在系統默認路徑查找頭文件
#include「xxx.h」有現在項目路徑查找頭文件
二、#ifndef和#endif
通常形式為
#ifndef _xxxx_h_
#define _xxxx_h_
.........(頭文件具體內容)
#endif
這樣的寫法表示,如果_xxxx_h_還沒有被定義,那麼頭文件內容將被執行,如果已經定義過了,那麼頭文件內容就不執行了。作用在於,如果某頭文件被不同c文件同時調用,那麼裡面的內容不至於因為重復定義而出錯,因為不管調用幾次頭文件,其內容只有在第一次出現時被執行,同時定義一個_xxxx_h_,以後再次調用時,頭文件內容被忽略。
三、函數和宏
假設有如下文件 main.c aaa.c aaa.h
其中,,aaa.c裡面有一個宏X,一個函數Y,且函數Y中使用了X
aaa.h裡面申明了函數Y
main.c里包含了aaa.h文件,調用了函數Y,但沒有定義宏X
那麼,編譯時不會出錯,這表示,函數Y中出現宏X時,它會在自身所在的c文件,即aaa.c裡面查找宏
變化1:如上情況不變,但是在main.c裡面將整個函數Y重新寫一遍
編譯出錯,提示 「error C202: 'X': undefined identifier」
說明此時函數Y在main.c文件中找不到宏X,因此提示為未定義的符號
變化2:將aaa.c中的宏剪切到main.c,其餘情況不變
編譯出錯,同樣提示「error C202: 'X': undefined identifier」
結論: 函數中如果出現宏,那麼該函數能且只能在其自身所在的c文件中查找該宏,如果二者不在同個c文件,必然出錯 。