Keil LX51 Error L104
Error L104处理
8051系列单片机总体来说内存空间小, 在需要数据转发的编程中为了更容易掌控内存分配和重用, 通常多用全局变量自定义,并把这些全局变量声明放在一个同一文件,在C代码文件中都包含此文件. 一般在包含main()函数的代码文件中 声明,在其他文件中加上 extern, 所以有了这样的定义:
#ifdef _main_c_
#define EXT
#else
#define EXT extern
#endif
EXT int k,j=0;
这时候,使用LB51或LX51 就会出现
MODULE: .\obj\xxx.obj (UART1)
DEFINED: .\obj\main.obj (MAIN)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
问题出在 j=0 的初始化语句中; 修改为 EXT int k,j;
问题就解决了