国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

stdio.h實現了printf函數?

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

掃碼添加小助手

加入工程師交流群

我們平時包含的 stdio.h 頭文件,里面是不是實現了 printf 函數?

為什么會有這個疑問?因為每次使用 printf,就得包含 stdio.h ,這就導致很多同學誤以為,stdio.h 里面實現了 printf。

實際上并不是,這里就涉及了頭文件和庫的區別。

頭文件一般存放大家都要用的東西,比如函數的聲明,結構體的聲明,命名新的類型等等。

stdio.h 頭文件,里面也只是聲明了一下 printf 函數,作用就是告訴編譯器,printf 是個函數,編譯的時候不要報錯。

至于 printf 的實現,在一個名字類似于 libc.so 這樣的文件中。

.so 是 Linux 下的動態庫文件,里面存放了各個函數的實現,不過他也屬于二進制文件,想要看 printf 的具體實現,還得去其他地方找源碼。

所以,千萬不要再以為,包含 stdio.h 是因為里面實現了 printf。

那頭文件里面能不能實現函數?反正頭文件也只是在預處理的時候展開,想要在里面寫什么都行。

不過會有這樣的情況發生。

比如 1.h 實現了函數 test,1.c 和 2.c 都包含了 1.h,編譯的時候,就會提示函數 test 重復定義。

還有一個類似的問題,頭文件里面能不能定義變量,這個問題大家怎么看,如果你也遇到過這樣的情況,歡迎在評論區交流。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67519
  • Stdio
    +關注

    關注

    0

    文章

    3

    瀏覽量

    7734
  • Printf
    +關注

    關注

    0

    文章

    84

    瀏覽量

    14736

原文標題:stdio.h 實現了 printf 函數?

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    將C庫的printf函數重定向到UART的過程

    這里不用keil自帶的microLib這個代碼,就是自己重新映射端口。 包含頭文件 stdio.h #ifdef __GNUC__ /* With GCC/RAISONANCE, small
    發表于 01-21 07:14

    函數指針與回調函數解讀

    函數指針是指向函數的指針變量。通過函數指針C語言可以實現各種強大的功能與設計方法。而回調函數函數
    發表于 01-19 07:34

    C語言中實現函數宏的三種方式

    1. 函數宏介紹 函數宏,即包含多條語句的宏定義,其通常為某一被頻繁調用的功能的語句封裝,且不想通過函數方式封裝來降低額外的彈棧壓棧開銷。 函數宏本質上為宏,可以直接進行定義,例如
    發表于 12-29 07:34

    在ADS編譯器中,用標準的C庫函數printf()需要哪些設置呢?

    在ADS編譯器中,用標準的C庫函數printf()需要哪些設置呢?又在哪兒可以看到printf()輸出的信息呢?
    發表于 12-23 07:32

    使用setjmp及longjmp函數處理異常

    使用setjmp和longjmp函數:這是一種用于實現非局部跳轉的方法,就是在程序中設置一個跳轉點,并在某些情況下跳轉到該跳轉點,從而繞過中間的一些代碼或函數。這樣可以在某些情況下模擬異常處理的效果
    發表于 12-11 08:00

    如何用函數指針調用函數

    函數 Func() 代碼的首地址。 下面來寫一個程序,看了這個程序你們就明白函數指針怎么使用了: #include int Max(int, int);//函數聲明 int
    發表于 12-11 06:26

    什么是KEIL的微庫(microlib)

    stdio.h中與文件指針(FILE變量類型)交互相關的函數都會返回錯誤,僅有的例外情況是以下三個標準流:stdin、stdout 和 stderr。 為什么說這三個是例外:這三個實際上是3個宏,原型
    發表于 12-10 06:27

    請問CW32F003支持printf函數嗎?

    CW32F003支持printf函數嗎?
    發表于 11-21 07:48

    printf函數在hbird SDK中的應用

    在helloworld的例程中,使用到了printf函數,通過串口輸出了數據。 在Nuclei Studio中通過teminal窗口可以查看串口打印的信息。 這背后的原理是什么? 在嵌入式
    發表于 10-31 08:48

    e203仿真helloworld例程printf能在終端顯示的原理

    我在這里分享給大家。 實現原理 在仿真的終端打印信息,是需要軟件部分和RTL設計相互配合的。 軟件層面 c語言里,printf函數可以說是人盡皆知。在pc端,由于操作系統提供標準
    發表于 10-27 06:56

    RTTHREAD stdio 2.2.9 為什么不能導入 BSP?

    RTTHREAD stdio 2.2.9不能導入 BSP
    發表于 09-11 07:07

    【RA4E2開發板評測】移植micro_shell實現LED燈的在線控制

    添加shell_uart.h/c代碼如下: #ifndef __SHELL_UART_H__ #define__SHELL_UART_H__ #include\"stdio.h
    發表于 08-29 18:14

    【RA4L1-SENSOR】+ 串口printf 輸出

    ; #include \"stdio.h\" volatile bool uart_send_complete_flag = false; void debug_uart9_callback
    發表于 06-17 00:01

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

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

    在外部中斷中將printf寫入,外部中斷LED可以翻轉,但串口不可顯示,為什么?

    \" #include \"usart.h\" #include \"gpio.h\" #include \"stdio.h\"
    發表于 03-13 06:19