我們在寫單片機程序的時候,第一行都會包含 reg51.h,于是就有同學提出了疑問,為什么不需要包含 stdio.h?
如果從C語言本身來講,一個完整的 C 代碼并不需要包含頭文件。
標準中也提到,程序的入口是 main 函數(shù),它應該有個整型返回值,參數(shù)可有可無。
所以一個最簡單的 C 代碼應該是這樣。
int main(void) { return 0; }
至于它的返回值,即使寫成 void,很多編譯器也不會提示問題。
那我們學習C語言的時候,為什么在第一行加上 stdio.h?
因為在代碼中用到了 printf,使用函數(shù),就得提前聲明,告訴編譯器它是個函數(shù),并且函數(shù)原型是什么樣。
而 printf 函數(shù)的聲明,就放在了 stdio.h 里面。
如果程序里面用不到輸入輸出相關的函數(shù),完全可以不包含 stdio.h。
再回到 51 單片機上。
作為一個裸機程序,很多時候,我們用不到 printf,所以也就很少包含 stdio.h。
包含 reg51.h,主要還是因為這里面定義了很多寄存器,比如點燈需要用到的 P1 等等,打開 reg51.h,你會發(fā)現(xiàn),它其實就是個地址。
-
單片機
+關注
關注
6030文章
44484瀏覽量
631800 -
C語言
+關注
關注
180文章
7591瀏覽量
135778 -
函數(shù)
+關注
關注
3文章
4276瀏覽量
62313 -
編譯器
+關注
關注
1文章
1615瀏覽量
49008
原文標題:C語言并不是非要包含stdio.h
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論