色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

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

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-11-26 17:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

比如代碼寫成這樣,stdio.h 連續包含了兩次。

#include 
#include 

int main()
{
    printf("helloworld
");
    return 0;
}

我們先來編譯看下,好像沒有任何問題。

root@Turbo:~# gcc test.c -o test 
root@Turbo:~#

同一個頭文件,隨便包含多少次,都不會有問題,主要是這兩行代碼起了作用。

#ifndef _STDIO_H
#define _STDIO_H    1

寫頭文件的時候,習慣上都會加上兩個預處理指令,ifndef 和 define。

就以這個 test.h 為例:

#ifndefTEST_H
#define TEST_H

struct Test
{
    int a;
};

#endif

在 test.h 里面聲明了一個結構體,然后在源文件中包含了兩次。

頭文件往往在編譯的第一步,預處理的時候展開。

第一次展開 test.h 的時候,會遇到預處理指令 ifndef:

#ifndef TEST_H

翻譯過來就是如果沒有定義這個宏。

很顯然,這個宏確實沒有定義過,于是判斷成立。

繼續往下走,遇到 define:

#define TEST_H

意思就是把這個宏定義一下。

然后就是把 test.h 里面的內容搬到源文件中,這就是所謂的展開。

第二次包含 test.h 的時候,重復上面的操作。

先是遇到 ifndef,很顯然,這個宏剛才定義過,于是這條預處理指令不成立,下面的所有代碼都會跳過。

這樣就清楚了,雖然我們在源碼里面包含了 test.h,但是因為判斷不成立,并沒有真正的包含進去。

相同的頭文件在一個源碼文件中可以重復包含,因為預處理指令的存在,所以并不會出問題。

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

    關注

    180

    文章

    7630

    瀏覽量

    141012
  • 代碼
    +關注

    關注

    30

    文章

    4894

    瀏覽量

    70460

原文標題:重復包含頭文件有什么影響

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32C031F4 FLASH存儲器讀寫例程各位高能不能提供一個?

    STM32C031F4FLASH存儲器 讀寫例程 各位高能不能提供一個謝謝大家
    發表于 03-13 07:37

    ADS8568能不能使用單電源供電?

    ADS8568能不能使用單電源供電,即HVSS接地,HVDD接+12V,能正常工作嗎?我現在用的硬件模式,采不到數據。。
    發表于 01-17 06:14

    EE-128:C語言中的DSP:從C調用匯編類成員函數

    電子發燒友網站提供《EE-128:C語言中的DSP:從C調用匯編類成員函數.pdf》資料免費下載
    發表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的DSP:從<b class='flag-5'>C</b>調用匯編類成員函數

    C6748的McBSP接口能不能讀ad1271的轉化數據?

    AD1271可以工作在兩種模式,一種是SPI;另一種是Frame Sync,我如果用C6748的McBSP接口能不能讀ad1271的轉化數據?
    發表于 01-01 07:22

    C語言中申請的堆內存能不能自動釋放

    C語言中申請的堆內存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。 學過 C++ 的同學,應該首先能想到智能指針。 但是這是C
    的頭像 發表于 11-27 09:33 ?494次閱讀

    使用C語言實現函數模板

      用C語言能不能實現一個通用的函數,既能完成整數的相加,又能完成浮點數的相加?
    的頭像 發表于 11-09 11:38 ?909次閱讀

    編譯器怎么處理同名頭文件

    C語言中的include很簡單,但不是你想象中的簡單。
    的頭像 發表于 11-05 16:51 ?818次閱讀
    編譯器怎么處理同名<b class='flag-5'>頭文件</b>

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
    的頭像 發表于 11-01 16:51 ?1153次閱讀

    一體成型電感外殼破損還能不能

    電子發燒友網站提供《一體成型電感外殼破損還能不能用.docx》資料免費下載
    發表于 10-31 10:57 ?0次下載

    TiNa里能不能加載HCNR的模型???

    我在用TI的運放配合HCNR201做一個隔離方案,想仿真一下,用的是Multisim,但是Multisim里的運放沒有輸出幅值對電源的限制,從TI網站上下載了一個擴展名是MOD的模型,在Multisim里無法加載,只能用.cir的文件。想問一下怎講解決啊,或者TiNa里能不能
    發表于 09-14 07:39

    UTB定位技術能不能精準定位

    在當今科技日新月異的時代,定位技術以其廣泛的應用場景和不斷提升的精度,成為了多個領域的核心支撐。其中,UTB定位技術以其高精度、低延遲和高抗干擾性等特點,在眾多定位技術中脫穎而出,成為精準定位領域的佼佼者。那么,UTB定位技術到底能不能精準定位呢?下面就給大家具體介紹一下關于UTB定位技術。
    的頭像 發表于 09-03 10:07 ?1105次閱讀

    hex文件如何查看原c語言代碼

    直接將 .hex 文件轉換回原始的 C 語言代碼是不可能的,因為 .hex 文件是二進制文件,它包含
    的頭像 發表于 09-02 10:37 ?4746次閱讀

    重復頭文件的固定結構

    年輕人,你可曾記得,在修習C語言的時候,見過這樣的字句:在創建頭文件的時候,一定要加入保護宏。
    的頭像 發表于 08-29 10:23 ?609次閱讀
    可<b class='flag-5'>重復</b><b class='flag-5'>頭文件</b>的固定結構

    c語言中從左到右結合怎么看

    C語言中,操作符的結合性(Associativity)是指當操作符在表達式中連續出現時,它們如何與操作數結合的順序。對于大多數二元操作符(即需要兩個操作數的操作符),C語言遵循兩種基
    的頭像 發表于 08-20 11:42 ?1592次閱讀

    TL331能不能防反接,負向耐壓多少?

    請問一下,TL331能不能防反接,負向耐壓多少?還請告知一下?
    發表于 08-08 06:39
    主站蜘蛛池模板: 日本理论片午午伦夜理片2021 | 中文字幕福利视频在线一区 | 亚洲国产精品免费线观看视频 | 丝袜美女自摸 | 色jie戒电影| 亚洲精品中文字幕在线 | 国产精品人妻无码77777 | 欧美精品成人久久网站 | 内射气质御姐视频在线播放 | 久久秋霞理论电影 | 久久久无码精品无码国产人妻丝瓜 | 久久黄色网 | 解开白丝老师的短裙猛烈进入 | videosgrati欧美另类 | 在线亚洲黄色 | 91免费网站在线看入口黄 | 视频成人永久免费视频 | 大香伊人久久精品一区二区 | 久爱在线中文在观看 | 午夜福利网国产A | 国产人妻人伦精品98 | 岳扒开让我添 | 三级网址在线播放 | 色哒哒影院 | 国产午夜高潮熟女精品AV | 男男腐文污高干嗯啊快点1V1 | 午夜男人免费福利视频 | 狠狠色丁香婷婷久久综合 | 亚洲七七久久桃花综合 | 激情女人花 | 精品高潮呻吟99AV无码 | 午夜视频在线网站 | 无码人妻丰满熟妇啪啪网不卡 | 国产呦精品一区二区三区下载 | 成人国内精品久久久久影院 | 果冻传媒AV精品一区 | 婷婷久久无码欧美人妻 | 性色无码AV久久蜜臀 | 吉吉影音先锋av资源 | 九九久久精品 | 超碰97人人做人人爱网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品