keil显示重定义是什么
时间: 2023-12-26 13:03:24 浏览: 196
STM32F407-printf-keil5.zip
Keil显示重定义是指在编译过程中,出现了同一个变量或函数被多次定义的情况。这通常是由于头文件被重复包含或者变量/函数没有进行正确的声明所导致的。解决方法通常是在头文件中使用条件编译指令,或者在变量/函数声明时使用extern关键字进行外部声明。下面是一个例子:
假设我们有两个文件a.c和b.c,它们都包含了同一个头文件header.h,而header.h中定义了一个全局变量x:
```c
// header.h
int x;
```
在a.c和b.c中都使用了这个变量:
```c
// a.c
#include "header.h"
void func1() {
x = 1;
}
// b.c
#include "header.h"
void func2() {
x = 2;
}
```
这样编译时就会出现重定义错误。为了解决这个问题,我们可以在header.h中使用条件编译指令:
```c
// header.h
#ifndef HEADER_H
#define HEADER_H
extern int x;
#endif
```
这样就可以避免重定义错误了。
阅读全文