新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > C51中頭文件的寫法

        C51中頭文件的寫法

        作者: 時間:2012-08-16 來源:網絡 收藏

        一、位置

        #include xxx.h> 優先在系統查找

        #include“xxx.h”有現在項目路徑查找

        二、#ifndef和#endif

        通常形式為

        #ifndef _xxxx_h_

        #define _xxxx_h_

        .........(頭文件具體內容)

        #endif

        這樣的寫法表示,如果_xxxx_h_還沒有被定義,那么頭文件內容將被執行,如果已經定義過了,那么頭文件內容就不執行了。作用在于,如果某頭文件被不同c文件同時調用,那么里面的內容不至于因為重復定義而出錯,因為不管調用幾次頭文件,其內容只有在第一次出現時被執行,同時定義一個_xxxx_h_,以后再次調用時,頭文件內容被忽略。

        三、函數和宏

        假設有如下文件 main.c aaa.c aaa.h

        其中,,aaa.c里面有一個宏X,一個函數Y,且函數Y中使用了X

        aaa.h里面申明了函數Y

        main.c里包含了aaa.h文件,調用了函數Y,但沒有定義宏X

        那么,編譯時不會出錯,這表示,函數Y中出現宏X時,它會在自身所在的c文件,即aaa.c里面查找宏

        變化1:如上情況不變,但是在main.c里面將整個函數Y重新寫一遍

        編譯出錯,提示 “error C202: 'X': undefined identifier”

        說明此時函數Y在main.c文件中找不到宏X,因此提示為未定義的符號

        變化2:將aaa.c中的宏剪切到main.c,其余情況不變

        編譯出錯,同樣提示“error C202: 'X': undefined identifier”

        結論: 函數中如果出現宏,那么該函數能且只能在其自身所在的c文件中查找該宏,如果二者不在同個c文件,必然出錯



        關鍵詞: C51 頭文件 默認路徑

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永登县| 安图县| 秦安县| 巢湖市| 宜兰市| 遵化市| 岐山县| 双柏县| 黎城县| 同德县| 通许县| 巴里| 青龙| 荔波县| 高密市| 重庆市| 方山县| 阜南县| 开化县| 辽宁省| 岳西县| 会昌县| 古田县| 平阳县| 海门市| 瑞安市| 怀来县| 浪卡子县| 阿坝县| 漳平市| 鹿泉市| 岳阳县| 乐亭县| 广丰县| 类乌齐县| 定兴县| 会同县| 祁连县| 扬州市| 淄博市| 西昌市|