keil c251位变量编译时出错
我的工程在keil c51上编译是通过的,在c251上就报错char ebdata inx1;//
char ebdata inx2;//
char ebdata inx3;//
//输入口定义
sbit x170 = inx1 ^ 0;
sbit x10 = inx1 ^ 0;
sbit x11 = inx1 ^ 1;
sbit x12 = inx1 ^ 2;
sbit x13 = inx1 ^ 3;
sbit x14 = inx1 ^ 4;
sbit x15 = inx1 ^ 5;
sbit x16 = inx1 ^ 6;
sbit x17 = inx1 ^ 7;
头文件
extern bit x170;
extern bit x10;
extern bit x11;
extern bit x12;
extern bit x13;
extern bit x14;
extern bit x15;
extern bit x16;
extern bit x17;
编译错误
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL:x13
MODULE:mainptslj.obj (mainptslj)
ADDRESS: FF0A9AH
请问,需要怎么改下才能好?
头文件和代码中重复定义了x13,去掉自己代码中x10-x17定义
21cnsound 发表于 2024-3-15 13:58
头文件和代码中重复定义了x13,去掉自己代码中x10-x17定义
头文件我使用了extern定义啊,在keil c51这样编译是可以的 我大概找到原因了,定义变量时也是需要定义为bdata才行,不能使用ebdata,这与说明书有点不一样;
定义为ebdata时在模块内部使用没有问题,但是有外部调用的话就编译报错
页:
[1]