音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場(chǎng)網(wǎng)
技術(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)教keil c51問題?

作者:lovedfrien 欄目:單片機(jī)
請(qǐng)教keil c51問題?
在C51里,怎樣避免重復(fù)定義
1。我在一個(gè)頭文件(define.h)里定義了一個(gè)變量,比如說usigned LONG a,當(dāng)我在一個(gè)以上的源文件(如(one.c和two.c)里包含這個(gè)頭文件時(shí)便會(huì)出現(xiàn)重復(fù)定義的錯(cuò)誤,請(qǐng)問如何避免這個(gè)錯(cuò)誤?
2。當(dāng)我將源文件(one.c)文件,改為頭文件(one.h)文件,并將其(one.c)包含進(jìn)某個(gè)源文件(two.c)時(shí),編譯能通過,但當(dāng)我調(diào)試時(shí)(此時(shí)two.c文件要調(diào)用one.h中的一個(gè)函數(shù)delay(),卻無法進(jìn)入函數(shù)體內(nèi)部,是怎么回事?

2樓: >>參與討論
AIRWILL
用條件的宏
#ifndef
#define ……
// 或者定義變量
#endif

具體請(qǐng)看 keil C 的 H 文件,都是例子

3樓: >>參與討論
lovedfrien
謝謝,不過還是沒看懂,麻煩大俠說詳細(xì)點(diǎn)?
 
4樓: >>參與討論
isoar
覺得樓主不是很清楚頭文件和程序文件的區(qū)別,建議看看書
 
5樓: >>參與討論
computer00
變量在.C文件中定義,只能有一處。然后到.H文件中申明就行了。
比如:
//*.c file

//........
unsigned CHAR i,j,k;
unsigned CHAR a_sample(unsigned CHAR x)
{
//do something
}


//*.h file
#ifndef __SAMPLE_H__
#define __SAMPLE_H__
//..............
extern unsigned CHAR i,j,k;
unsigned CHAR a_sample(unsigned CHAR);

#endif

6樓: >>參與討論
荒原野草
如果你的手頭有uc/os的書,參考一下他的做法,非常棒的
 
7樓: >>參與討論
AIRWILL
哇,這么多例子,好好研究研究吧
 
8樓: >>參與討論
ketp
有興趣看看
這是我寫頭文件的方法,如果你的文件要保密,那就把static部分放fileName.c中,還有建議用一個(gè)頭文件把所有文件的頭文件包含進(jìn)去
///////////fileName.h////////////////
#ifndef _FILENAME_H
#define _FILENAME_H

#ifdef _FILENAME_C                        
    #define _EXTERN_
#else
    #define _EXTERN_ extern    //文件對(duì)外接口
#endif

//變量定義
_EXTERN_    u8 VAR1;
#ifdef _FILENAME_C
static      u8 VAR2;//文件內(nèi)部變量
#endif

//函數(shù)聲明
_EXTERN_    void Function1(void);
#ifdef _FILENAME_C    
static      void Function2(void);//文件內(nèi)部函數(shù)    
#endif

#undef _EXTERN_

#endif//end of #ifndef _FILENAME_H
///////////fileName.c////////////////
#define _FILENAME_C
#include fileName.h


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
有關(guān)8279的一個(gè)問題
不好意思,誤操作了
請(qǐng)幫助:PLM編譯的問題
有沒有人用過電壓頻率轉(zhuǎn)換器BG382?在哪里可以查它的詳細(xì)資料?
尋找做過“電子血壓計(jì)”的工程師!
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)