阅读:1939回复:6
c51请教
在一个项目下的几个.c文件声明的函数和变量比如 x5045cs 、x5045clk、zlg7289cs等等及其在各自.c(x5045.c、zlg7289.c)声明的函数在主程序文件main.c中调用还要在声明一次吗?
我在main.c用中断函数调用zlg7289.c中的函数和改变 zlg7289cs=0;时编译器却说没有声明! void ISR_key(void) interrupt 0 using 3 { uint keynub=0; EA=0;// ZLG7289_CS=0;//此处往后在main.c中就不认识了。 delay_short();//都已在zlg7289.c中声明了 wrDis_play(0x15); delay_short(); keynub=read_key(); ZLG7289_CS=1; switch(keynub) {。。。; } 请高手指教! [编辑 - 2/17/05 by lzl] |
|
|
沙发#
发布于:2005-02-18 16:10
你要引用过来阿. 你只需要引用就可以了. |
|
板凳#
发布于:2005-02-18 16:47
如何引用?
|
|
|
地板#
发布于:2005-02-19 11:24
用Extern引用
|
|
地下室#
发布于:2005-02-19 19:07
函数我是这么做的,但变量太多,麻烦。我将它直接改为头文件,包含进去了,这样做,有不妥的地方吗?
我发现我编的中断程序,在调用该头文件的函数时,进不去。中断后乱跑。不知为何? |
|
|
5楼#
发布于:2005-02-21 11:44
每个.c文件都是独立的,你要调用该文件以外的函数或变量都必须先声明或包含相应的头文件~~中断后乱跑的话…………先检查一下项目中有没有包含该函数的源代码???因为只extern的话虽然能通过编译,但函数实体还是有可能不存在的~
|
|
6楼#
发布于:2005-02-21 21:13
单步执行时,可以跟踪到函数内部,我将那个函数声明为不可中断。
可能问题出在这里。程序还没完成,我想编一部分就调一部分。 |
|
|