原因:因为在“led.h”中定义了许多变量,“led.c”文件中采用#include “led.h”,调用“led.h”中的变量;在主函数"main.c"中也采用#include “led.h”,调用“led.h”中的变量,导致“led.h”中的变量被重复定义。
解决方法:首先,不应该在“led.h”中定义“led.c”中使用的变量,应该直接在“led.c”中定义所需的变量,例如 i16 rr;。然后再主程序"main.c"中将所调用“led.c”中的变量定义为 extern,例如 extern i16 rr;,问题得到解决。