18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

C語(yǔ)言中的頭文件能不能重復(fù)包含

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

掃碼添加小助手

加入工程師交流群

C語(yǔ)言中的頭文件能不能重復(fù)包含?

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

#include 
#include 

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

我們先來(lái)編譯看下,好像沒有任何問題。

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

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

#ifndef _STDIO_H
#define _STDIO_H    1

寫頭文件的時(shí)候,習(xí)慣上都會(huì)加上兩個(gè)預(yù)處理指令,ifndef 和 define。

就以這個(gè) test.h 為例:

#ifndefTEST_H
#define TEST_H

struct Test
{
    int a;
};

#endif

在 test.h 里面聲明了一個(gè)結(jié)構(gòu)體,然后在源文件中包含了兩次。

頭文件往往在編譯的第一步,預(yù)處理的時(shí)候展開。

第一次展開 test.h 的時(shí)候,會(huì)遇到預(yù)處理指令 ifndef:

#ifndef TEST_H

翻譯過來(lái)就是如果沒有定義這個(gè)宏。

很顯然,這個(gè)宏確實(shí)沒有定義過,于是判斷成立。

繼續(xù)往下走,遇到 define:

#define TEST_H

意思就是把這個(gè)宏定義一下。

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

第二次包含 test.h 的時(shí)候,重復(fù)上面的操作。

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

這樣就清楚了,雖然我們?cè)谠创a里面包含了 test.h,但是因?yàn)榕袛嗖怀闪?,并沒有真正的包含進(jìn)去。

相同的頭文件在一個(gè)源碼文件中可以重復(fù)包含,因?yàn)轭A(yù)處理指令的存在,所以并不會(huì)出問題。

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

    關(guān)注

    183

    文章

    7634

    瀏覽量

    144189
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4927

    瀏覽量

    72499

原文標(biāo)題:重復(fù)包含頭文件有什么影響

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    頭文件保護(hù)失效,提示變量重復(fù)包含,是什么原因?qū)е碌模?/a>

    我自定了一個(gè)頭文件,而且使用了頭文件保護(hù)機(jī)制。但是在兩個(gè)源文件包含相同的頭文件時(shí),依然提示某些變量重復(fù)
    發(fā)表于 10-09 06:19

    工廠設(shè)備能不能工業(yè)數(shù)采?3招教你快速判斷,省時(shí)又省錢!

    設(shè)備能不能采?記住這五招:看接口、問協(xié)議、查燈亮、找廠家、加傳感器。大部分現(xiàn)代工廠設(shè)備(PLC/CNC/注塑機(jī)),甚至部分干燥機(jī)、模溫機(jī),都是能采的!別被“老設(shè)備”嚇住。
    的頭像 發(fā)表于 07-03 10:09 ?408次閱讀
    工廠設(shè)備<b class='flag-5'>能不能</b>工業(yè)數(shù)采?3招教你快速判斷,省時(shí)又省錢!

    深入理解C語(yǔ)言C語(yǔ)言循環(huán)控制

    C語(yǔ)言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以讓程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進(jìn)入無(wú)限循環(huán),C語(yǔ)言提供了多種循
    的頭像 發(fā)表于 04-29 18:49 ?1554次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>循環(huán)控制

    STM32C031F4 FLASH存儲(chǔ)器讀寫例程各位高能不能提供一個(gè)?

    STM32C031F4FLASH存儲(chǔ)器 讀寫例程 各位高能不能提供一個(gè)謝謝大家
    發(fā)表于 03-13 07:37

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

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

    EE-62:在C語(yǔ)言中訪問短字內(nèi)存

    電子發(fā)燒友網(wǎng)站提供《EE-62:在C語(yǔ)言中訪問短字內(nèi)存.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:02 ?0次下載
    EE-62:在<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言中</b>訪問短字內(nèi)存

    EE-128:C語(yǔ)言中的DSP:從C調(diào)用匯編類成員函數(shù)

    電子發(fā)燒友網(wǎng)站提供《EE-128:C語(yǔ)言中的DSP:從C調(diào)用匯編類成員函數(shù).pdf》資料免費(fèi)下載
    發(fā)表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言中</b>的DSP:從<b class='flag-5'>C</b>調(diào)用匯編類成員函數(shù)

    C6748的McBSP接口能不能讀ad1271的轉(zhuǎn)化數(shù)據(jù)?

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

    ADS1292R導(dǎo)聯(lián)能不能共用?

    現(xiàn)在已經(jīng)實(shí)現(xiàn)了ADS1298測(cè)量8通道心電型號(hào),要加上呼氣阻抗的測(cè)量功能,要求這兩種同時(shí)測(cè)量,所以打算再用一片ADS1292R完成呼吸測(cè)量,這樣的話有些導(dǎo)連需要共用,問題是:導(dǎo)聯(lián)能不能共用?如果
    發(fā)表于 12-12 08:36

    C語(yǔ)言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放

    C語(yǔ)言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放?每次都要手動(dòng) free 太麻煩,也容易忘記。 學(xué)過 C++ 的同學(xué),應(yīng)該首先能想到智能指針。 但是這是C
    的頭像 發(fā)表于 11-27 09:33 ?739次閱讀

    ADS52J90EVM TX_TRIG管腳懸空能不能使用?

    請(qǐng)問TX_TRIG管腳懸空能不能使用?
    發(fā)表于 11-14 07:41

    使用C語(yǔ)言實(shí)現(xiàn)函數(shù)模板

      用C語(yǔ)言能不能實(shí)現(xiàn)一個(gè)通用的函數(shù),既能完成整數(shù)的相加,又能完成浮點(diǎn)數(shù)的相加?
    的頭像 發(fā)表于 11-09 11:38 ?1153次閱讀

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

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

    C語(yǔ)言中的socket編程基礎(chǔ)

    Socket編程簡(jiǎn)介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。在C語(yǔ)言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)不同計(jì)算機(jī)之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?1727次閱讀

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

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