@[TOC]keil变量重复定义问题
keil编译提示error: redefinition of ‘XXX’,变量重复定义
编译运行发现提示错误,…/user/sample.c(15): error: redefinition of ‘VoltageTmp’
原因
原因可能存在两个:
1、软件中两个或者多个.c文件重复定义了该变量
2、变量在.h中定义
解决办法
情况1:
如果是在多个.c文件中重复定义了该变量,则只需要定义一个,其余的删除。如果需要在多个.c文件中使用该变量,则在定义的.c文件对应的.h头文件中使用extern声明该变量,需要用到该变量的文件使用#include调用该头文件即可
extern uint8_t TestIndex;
情况2:
变量是不允许在头文件中定义的,这样的话每当其他.c文件调用一次该头文件便重复定义一遍该变量。解决办法同情况1,将变量在.c文件中定义,并在头文件中使用extern声明,其他的.c文件调用该头文件。