|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請(qǐng)問(wèn)一個(gè)頭文件的包含問(wèn)題 |
| 作者:future_god 欄目:嵌入式系統(tǒng) |
我在abc.h中定義了申明了函數(shù)的原型 在abc.c中寫(xiě)了函數(shù)的實(shí)現(xiàn)并且#include "abc.h" 在main.c中#include "abc.h",但是編譯時(shí)總會(huì)出現(xiàn) *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: _FFT MODULE: main.obj (MAIN) 但是函數(shù)的實(shí)現(xiàn)就在abc.c中啊.是不是應(yīng)該把a(bǔ)bc.c也要 加入工程呢? 我用的是keil c . 希望高手指點(diǎn)一下.謝謝!! |
| 2樓: | >>參與討論 |
| 作者: future_god 于 2005/8/28 12:05:00 發(fā)布:
還有 我在abc.h文件前面還寫(xiě)了#ifndef FFT_H ............................. ................................ #endif 在abc.c文件前寫(xiě)了#define FFT_H 編譯main.c時(shí)的時(shí)候就出現(xiàn)我所說(shuō)的問(wèn)題. |
|
| 3樓: | >>參與討論 |
| 作者: hiberhe 于 2005/8/28 12:19:00 發(fā)布:
你的ifndef用錯(cuò)了! 頭文件應(yīng)該這樣寫(xiě):(當(dāng)然_ABC_H_這個(gè)符號(hào)就看個(gè)人習(xí)慣了) #ifndef _ABC_H_ #define _ABC_H_ // 這兒才頭文件的內(nèi)容 #endif 你在main.c中用define,而在頭文件中用的是ifndef,如果你的define在include之前,當(dāng)然就不可能包含頭文件啦:) |
|
| 4樓: | >>參與討論 |
| 作者: future_god 于 2005/8/28 14:11:00 發(fā)布:
謝謝hiberhe兄的解答!!可是還有問(wèn)題.... 現(xiàn)在的寫(xiě)法是 /**abc.h*/ #ifndef _ABC_H_ #define _ABC_H_ // 這兒是頭文件的內(nèi)容 #endif /**abc.c**/ #include <math.h> #include "abc.h" #define _ABC_H_ //下面是abc.h中申明的函數(shù)的實(shí)現(xiàn) .................... ................... /**main.c**/ #include "abc.h" #include 其他文件 但是這樣寫(xiě)還是有我說(shuō)到的錯(cuò)誤..很迷惑.....啊 |
|
| 5樓: | >>參與討論 |
| 作者: future_god 于 2005/8/28 15:12:00 發(fā)布:
剛才computer00說(shuō)abc.c中不要寫(xiě)#define _ABC_H 剛才computer00說(shuō)abc.c中不要寫(xiě)#define _ABC_H 可是還是不行啊!! |
|
| 6樓: | >>參與討論 |
| 作者: computer00 于 2005/9/4 23:50:00 發(fā)布:
你都先define了,再include,后邊的就不編譯了,相當(dāng)于沒(méi)include “現(xiàn)在的寫(xiě)法是 /**abc.h*/ #ifndef _ABC_H_ #define _ABC_H_ // 這兒是頭文件的內(nèi)容 #endif /**abc.c**/ #include <math.h> #include "abc.h" #define _ABC_H_ //下面是abc.h中申明的函數(shù)的實(shí)現(xiàn) .................... ................... /**main.c**/ #include "abc.h" #include 其他文件 ” 你在abc.c中使用了#define _ABC_H_,然后再#include "abc.h",這 樣,abc.h中的#ifndef _ABC_H_就變得不成立了,自然后面的就不會(huì) 被編譯,編譯器當(dāng)然會(huì)說(shuō)未定義了。 * - 本貼最后修改時(shí)間:2005-9-4 23:51:27 修改者:computer00 |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |