codewarrior下有两个.c文件,分别为eeprom.c和Evenrs.c.
现在要从eeprom.c中调用Evenrs.c中的某个变量,请问该如何用呢?
我现在在eeprom.c的开始定义了extern char sFlag;.编译时系统报错,说在Evenrs.c.中的sFlag没有定义.
这该如何解决呢?
程序见附件
KCO8IeRq.rar (675.24 KB)看看
我在C里面学过
不过好久不用了
全局变量一般在程序的开头定义 作用于整个程序
放在开头了,好像不行
我现在把它放到了.h文件里了,至少编译没报错.
不知道时不时该这样做
请各位高手发表意见
编译不报错 那就应该没有问题的 奇怪
放在开头了,好像不行
我现在把它放到了.h文件里了,至少编译没报错.
不知道时不时该这样做
请各位高手发表意见
编译虽然通过,但实际运行时,并不能把数据传过来.
放在开头了,好像不行
我现在把它放到了.h文件里了,至少编译没报错.
不知道时不时该这样做
请各位高手发表意见
编译虽然通过,但实际运行时,并不能把数据传过来.
看来还是存在问题
sFlag没有定义,只有声明。
光有extern char sFlag;这句是不会为变量sFlag分配内存的。
需要在Events.c中加入char sFlag;
需要在Events.c中的函数体外加入char sFlag;
sFlag没有定义,只有声明。
光有extern char sFlag;这句是不会为变量sFlag分配内存的。
需要在Events.c中加入char sFlag;
应该是在Events.c中用 extern char sFlag吧
我现在是这么用的:
在Events.c中加入extern char 在eeprom中用sFlag,char sFlag;
调试成功,运行也正确
sFlag没有定义,只有声明。
光有extern char sFlag;这句是不会为变量sFlag分配内存的。
需要在Events.c中加入char sFlag;
应该是在Events.c中用 extern char sFlag吧
我现在是这么用的:
在Events.c中加入extern char 在eeprom中用sFlag,char sFlag;
调试成功,运行也正确
调试是成功了,但是理解有错。11楼正解
我现在是这么用的:
在Events.c中加入extern char 在eeprom中用sFlag,char sFlag;
是在调用的地方加extern还是在被调用的地方加extern呢?
有点迷糊了
定义全局变量sFlag时不用加extern,在引用到该变量的文件中要用extern声明是外部定义过的,这样就行了!
你好,我刚才把你的程序运行了一下,当运行你的原来的程序时出现了2个错误,后来我在Events.c种把它声明了一下就可以了,char sFlag;因为这是两个c文件,在一个c里用到的变量你必须在此文件种进行声明,如果另一个c要调用它,在主调用的函数中用EXTERN声明,表示我用的这个变量在外部文件种定义;
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |