我得到“错误[Pe020]:IAR编译器为以下代码”未定义“标识符”mVar“。
我应该如何使用extern变量?我看不出我做错了什么。
// commonDefs.h
#include <stdint.h>
extern uint16_t mVar;
// file1.c中
...
uint16_t mVar; //global declaration
...
static void food( void){
mVar = 10;
}
// file2.c中
uint16_t compVar;
...
static void mFoo( void ){
if( compVar > mVar){
...
}
}
答案 0 :(得分:-1)
在标题中将mVar声明为uint16_t
,并在您对另一个源文件中声明的变量进行reffering时使用extern,即仅在源文件中使用extern。当您将extern
放在变量前面时,链接器将在其他地方寻找定义