chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

我們平時(shí)包含的 stdio.h 頭文件,里面是不是實(shí)現(xiàn)了 printf 函數(shù)?

為什么會(huì)有這個(gè)疑問(wèn)?因?yàn)槊看问褂?printf,就得包含 stdio.h ,這就導(dǎo)致很多同學(xué)誤以為,stdio.h 里面實(shí)現(xiàn)了 printf。

實(shí)際上并不是,這里就涉及了頭文件和庫(kù)的區(qū)別。

頭文件一般存放大家都要用的東西,比如函數(shù)的聲明,結(jié)構(gòu)體的聲明,命名新的類型等等。

stdio.h 頭文件,里面也只是聲明了一下 printf 函數(shù),作用就是告訴編譯器,printf 是個(gè)函數(shù),編譯的時(shí)候不要報(bào)錯(cuò)。

至于 printf 的實(shí)現(xiàn),在一個(gè)名字類似于 libc.so 這樣的文件中。

.so 是 Linux 下的動(dòng)態(tài)庫(kù)文件,里面存放了各個(gè)函數(shù)的實(shí)現(xiàn),不過(guò)他也屬于二進(jìn)制文件,想要看 printf 的具體實(shí)現(xiàn),還得去其他地方找源碼。

所以,千萬(wàn)不要再以為,包含 stdio.h 是因?yàn)槔锩鎸?shí)現(xiàn)了 printf。

那頭文件里面能不能實(shí)現(xiàn)函數(shù)?反正頭文件也只是在預(yù)處理的時(shí)候展開(kāi),想要在里面寫(xiě)什么都行。

不過(guò)會(huì)有這樣的情況發(fā)生。

比如 1.h 實(shí)現(xiàn)了函數(shù) test,1.c 和 2.c 都包含了 1.h,編譯的時(shí)候,就會(huì)提示函數(shù) test 重復(fù)定義。

還有一個(gè)類似的問(wèn)題,頭文件里面能不能定義變量,這個(gè)問(wèn)題大家怎么看,如果你也遇到過(guò)這樣的情況,歡迎在評(píng)論區(qū)交流。

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

    關(guān)注

    3

    文章

    4421

    瀏覽量

    67819
  • Stdio
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    7758
  • Printf
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    14815

原文標(biāo)題:stdio.h 實(shí)現(xiàn)了 printf 函數(shù)?

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    將C庫(kù)的printf函數(shù)重定向到UART的過(guò)程

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

    函數(shù)指針與回調(diào)函數(shù)解讀

    函數(shù)指針是指向函數(shù)的指針變量。通過(guò)函數(shù)指針C語(yǔ)言可以實(shí)現(xiàn)各種強(qiáng)大的功能與設(shè)計(jì)方法。而回調(diào)函數(shù)函數(shù)
    發(fā)表于 01-19 07:34

    C語(yǔ)言中實(shí)現(xiàn)函數(shù)宏的三種方式

    1. 函數(shù)宏介紹 函數(shù)宏,即包含多條語(yǔ)句的宏定義,其通常為某一被頻繁調(diào)用的功能的語(yǔ)句封裝,且不想通過(guò)函數(shù)方式封裝來(lái)降低額外的彈棧壓棧開(kāi)銷。 函數(shù)宏本質(zhì)上為宏,可以直接進(jìn)行定義,例如
    發(fā)表于 12-29 07:34

    在ADS編譯器中,用標(biāo)準(zhǔn)的C庫(kù)函數(shù)printf()需要哪些設(shè)置呢?

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

    使用setjmp及l(fā)ongjmp函數(shù)處理異常

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

    如何用函數(shù)指針調(diào)用函數(shù)

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

    什么是KEIL的微庫(kù)(microlib)

    stdio.h中與文件指針(FILE變量類型)交互相關(guān)的函數(shù)都會(huì)返回錯(cuò)誤,僅有的例外情況是以下三個(gè)標(biāo)準(zhǔn)流:stdin、stdout 和 stderr。 為什么說(shuō)這三個(gè)是例外:這三個(gè)實(shí)際上是3個(gè)宏,原型
    發(fā)表于 12-10 06:27

    請(qǐng)問(wèn)CW32F003支持printf函數(shù)嗎?

    CW32F003支持printf函數(shù)嗎?
    發(fā)表于 11-21 07:48

    飛凌嵌入式ElfBoard-文件I/O的了解探究之I/O緩沖

    /O有自己的緩沖區(qū)(stdio緩沖區(qū)),因此雖然標(biāo)準(zhǔn)I/O是在系統(tǒng)I/O基礎(chǔ)上進(jìn)行封裝而實(shí)現(xiàn),但在效率、性能上標(biāo)準(zhǔn)I/O要優(yōu)于系統(tǒng)I/O。標(biāo)準(zhǔn)I/O所維護(hù)的stdio緩沖是用戶空間的緩沖區(qū),當(dāng)應(yīng)用程序中
    發(fā)表于 11-19 16:24

    printf函數(shù)在hbird SDK中的應(yīng)用

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

    計(jì)算程序執(zhí)行指令數(shù)的函數(shù)實(shí)現(xiàn)

    (來(lái)源:手把手教你設(shè)計(jì)cpu_RISC-V處理器),他們分別存儲(chǔ)指令計(jì)數(shù)器的高低32位 至此就大致能理解指令數(shù)計(jì)算函數(shù)實(shí)現(xiàn)原理,即通過(guò)csrr指令讀minstreth和minstret寄存器得到執(zhí)行操作前后的指令計(jì)數(shù)值,再
    發(fā)表于 10-28 06:27

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

    我在這里分享給大家。 實(shí)現(xiàn)原理 在仿真的終端打印信息,是需要軟件部分和RTL設(shè)計(jì)相互配合的。 軟件層面 c語(yǔ)言里,printf函數(shù)可以說(shuō)是人盡皆知。在pc端,由于操作系統(tǒng)提供標(biāo)準(zhǔn)
    發(fā)表于 10-27 06:56

    RTTHREAD stdio 2.2.9 為什么不能導(dǎo)入 BSP?

    RTTHREAD stdio 2.2.9不能導(dǎo)入 BSP
    發(fā)表于 09-11 07:07

    【RA4E2開(kāi)發(fā)板評(píng)測(cè)】移植micro_shell實(shí)現(xiàn)LED燈的在線控制

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

    【RA4L1-SENSOR】+ 串口printf 輸出

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