uchar宏定义错误 |
没有定义,应该这样定义uchar #define uchar unsigned char ,同理uint也这样定义使用 |
宏定义有问题,应该是#define uchar unsigned char,这样uchar readkey就相当于unsigned char readkey,定义的是一个无符号字符类型,但是你的宏定义是#define uchar unsigned char THO TLO TH1 TLI,这样uchar readkey就相当于unsigned char THO TLO TH1 TLI readkey,此时定义方式有问题,报错 |
#define uchar unsigned char TH0 TL0 TH1 TL1 改成 #define uchar unsigned char |
本帖最后由 疯子本人 于 2020-5-4 22:38 编辑 把那几行注释一下,看一下是否是中文输入,前面的uchar没定义好 |
很可能是中文的分号,一模一样的。 |
宏定义就是把uchar后面的都定义过来了 |
第二行宏定义是什么 把char后面的都去掉 |
宏定义出错了 因为你的宏定义是#define uchar unsigned char TH0 TH1 TH2 TL0 TL1 所以当你定义uchar radkey;时等价于(unsigned char TH0 TH1 TH2 TL0 TL1) readkey; |
你的代码乱拷贝来的吧,关注点不对了,你没看到报错信息说头文件打不开么,你的电脑中可能没有那样的头文件,试一下 reg52.h 也好呀。 第二行的宏定义也错了,后面跟了太长的尾巴。 第一行第二行就已是错的,可你却什么不知道。 |
第二行宏定义和变量声明怎么一行写了? 另外看编译是没找到at89x51.h 这个头文件声明了特殊寄存器TH0,TL0,TH1,TL1。不需要你第二行的重复声明。 有了头文件,删掉第二行,第二个错误就不存在了。 |
#define uchar unsigned char TH0 TL0 TH1 TL1 这里是几个意思 |
把第1个错误改正后也许就没有了,头文件改为regx52.h |
第十一行的x和temp之间是不是少个下划线。 |