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