打印

编译器出现错误

[复制链接]
1865|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xjdr123057|  楼主 | 2008-6-13 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uchar
Key_Board(void)
{
    uchar a,key=0;

    P1=0X1F;
    P3=0XFF;
    if(P3==0XFF) return 0;
    else{
        Value_Flag=1;
        Delay();
        for(a=0;a<3;a++){
            P1=_crol_(0XDF,a);
            if(P32==0) break;
            if(P33==0) break;
            if(P34==0) break;
            if(P35==0) break;

.......

头文件为
#ifndef _KEYBOARD_H
#define _KEYBOARD_H
#include<reg52.h>
#include<intrins.h>
#include<stdio.h>
#define  uchar     unsigned  char
void Delay(void);
 uchar Key_Board(void);
uchar Key_Value(void);
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;

 bit Value_Flag=0;

#endif

编译器出现:

Build target 'Target 1'
compiling keyboard.c...
compiling ceshi2.c...
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  VALUE_FLAG
    MODULE:  ceshi2.obj (CESHI2)
Program Size: data=10.2 xdata=0 code=272
Target not created
主程序测试按键标志(Value_Flag),删除这个标志之后就可以编译

相关帖子

沙发
xjdr123057|  楼主 | 2008-6-13 17:58 | 只看该作者

还有

键盘其他正常,为什么出现这个错误。如果,需要源代码,可以发送到邮箱

使用特权

评论回复
板凳
dld2| | 2008-6-13 18:30 | 只看该作者

不要在头文件定义变量

使用特权

评论回复
地板
hotpower| | 2008-6-13 18:31 | 只看该作者

楼上正点~~~

使用特权

评论回复
5
zllfdd| | 2008-6-13 19:48 | 只看该作者

`````

有人说声明和定义不同,声明可以多次,定义只能一次。

使用特权

评论回复
6
xjdr123057|  楼主 | 2008-6-13 20:21 | 只看该作者

谢谢了

已经解决了,不能在头文件里声明变量

使用特权

评论回复
7
平常人| | 2008-6-13 22:08 | 只看该作者

3楼正点,6楼误点

“不要在头文件定义变量”,不是“不能在头文件里声明变量”,这两句话意思完全不一样。

使用特权

评论回复
8
x512775199| | 2008-6-13 22:19 | 只看该作者

呵呵

还是需要咬文嚼字

使用特权

评论回复
9
wlsui| | 2008-6-13 22:34 | 只看该作者

定义和声明,

貌似很多人都不注意其间的区别
建议去看看潭浩强的那本书

使用特权

评论回复
10
x512775199| | 2008-6-13 22:35 | 只看该作者

嗯 谭浩强的书够仔细

使用特权

评论回复
11
xjdr123057|  楼主 | 2008-6-14 22:05 | 只看该作者

呵呵

学了几年的C,自认为很透了,没有想到一实践,就显示出来了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

16

帖子

0

粉丝