91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

C語言為什么不需要包含stdio.h

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-10-29 15:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們在寫單片機程序的時候,第一行都會包含 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),它其實就是個地址。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6076

    文章

    45495

    瀏覽量

    670438
  • C語言
    +關注

    關注

    183

    文章

    7644

    瀏覽量

    145605
  • 函數(shù)
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67521
  • 編譯器
    +關注

    關注

    1

    文章

    1672

    瀏覽量

    51618

原文標題:C語言并不是非要包含stdio.h

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    請問為什么加了stdio.h,sprintf還是用不了?

    請問為什么自己加了stdio.h,sprintf還是用不了?
    發(fā)表于 03-13 07:23

    庫文件stdlib.hstdio.h不支持utoa()和snprintf()

    ; gt;但是函數(shù)只是把錯誤拋在上面。但并非總是如此。我想我需要知道STDLIB。hSTDIO。h實際上是如何加載到項目中的,以及從何處來的。什么是對標準的內(nèi)置庫文件進行更改,這些文
    發(fā)表于 01-11 11:21

    ucos在PC機上的應用提示無法打開stdio.h文件

    為什么我編譯#includevoid main(){while(1){printf("hello world\n");}}老是提示無法打開stdio.h文件?求大神解答
    發(fā)表于 04-28 23:13

    為什么燒寫stdio.h屏幕會發(fā)黑?

    燒寫stdio.h屏幕發(fā)黑 什么原因?
    發(fā)表于 08-23 05:45

    在嵌入式處理器環(huán)境中為什么匯編語言不需要堆棧?

    在嵌入式處理器環(huán)境中,為何C語言(函數(shù)調(diào)用)需要堆棧,而匯編語言不需要堆棧?據(jù)我所知,c
    發(fā)表于 03-20 04:35

    嵌入式開發(fā)中C語言編程的相關資料分享

    ,使用庫函數(shù)是不可避免的。關于使用庫函數(shù)的最簡單的例子就是printf()。在Linux環(huán)境下的C語言編程中,庫函數(shù)包括兩個部分:一種是C語言的標準庫函數(shù),例如
    發(fā)表于 12-15 06:13

    編譯顯示fatal error: stdio.h: No such file or directory怎么解決?

    在編譯通過命令arm-poky-linux-gnueabi-gcc test.c,編譯程序時,顯示fatal error: stdio.h: No such file or directory,用gcc編譯不會報錯!
    發(fā)表于 01-10 06:35

    基于單片機設計的軟件時鐘C語言程序

    本內(nèi)容提供了基于單片機設計的軟件時鐘C語言程序 程序如下: #pragma db oe #include reg52.h #include absacc.h #include stri
    發(fā)表于 11-21 15:59 ?199次下載

    一些常見的C語言字符串操作

    ? #字符串倒序輸出 實現(xiàn)邏輯,通過strlen獲取字符串長度,然后通過 len/2 進行交叉賦值,這里需要注意,不需要考慮len是奇數(shù)還是偶數(shù)的問題。 如果len是奇數(shù),最后一個字符就不需要倒序
    的頭像 發(fā)表于 12-24 16:31 ?2654次閱讀

    不需要電感器

    不需要電感器
    發(fā)表于 04-29 12:14 ?3次下載
    <b class='flag-5'>不需要</b>電感器

    C語言如何實現(xiàn)Hello xiaolin

    在上述程序里編譯預處理命令稱為文件包含命令,作用是在編譯之前把程序需要使用的關于系統(tǒng)定義的函數(shù)printf()的一些信息文件stdio.h包含進來。
    的頭像 發(fā)表于 03-08 16:06 ?668次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>如何實現(xiàn)Hello xiaolin

    不需要點表的工業(yè)網(wǎng)關”如何實現(xiàn)松下FPG-C32T2H數(shù)據(jù)采集和遠程維護的物聯(lián)網(wǎng)解決方案

    深控技術的 “不需要點表的工業(yè)網(wǎng)關” 實現(xiàn)松下 FPG-C32T2H 數(shù)據(jù)采集和遠程維護的物聯(lián)網(wǎng)解決方案
    的頭像 發(fā)表于 10-12 11:30 ?1333次閱讀
    “<b class='flag-5'>不需要</b>點表的工業(yè)網(wǎng)關”如何實現(xiàn)松下FPG-<b class='flag-5'>C32T2H</b>數(shù)據(jù)采集和遠程維護的物聯(lián)網(wǎng)解決方案

    C語言中的頭文件能不能重復包含

    C語言中的頭文件能不能重復包含? 比如代碼寫成這樣,stdio.h 連續(xù)包含了兩次。 #include #include int main(
    的頭像 發(fā)表于 11-26 17:19 ?1165次閱讀

    stdio.h實現(xiàn)了printf函數(shù)?

    我們平時包含stdio.h 頭文件,里面是不是實現(xiàn)了 printf 函數(shù)? 為什么會有這個疑問?因為每次使用 printf,就得包含 stdio.h ,這就導致很多同學誤以為,
    的頭像 發(fā)表于 12-18 10:28 ?1081次閱讀

    系統(tǒng)c盤滿了怎么清理不需要文件

    統(tǒng)c盤滿了怎么清理不需要文件 ? 你的 c: 驅(qū)動已經(jīng)滿了, 電腦變慢或者無法安裝更新, 這是 windows 機器常見的問題, 不用當技術專家也能騰出空間, 這篇指南用簡單安全的步驟幫你找到并刪除
    的頭像 發(fā)表于 11-22 09:30 ?1015次閱讀