warning: 'extern' variable has an initializer [-Wextern-initializer] extern float Filter_factor = 0.5;
时间: 2023-06-27 18:01:19 浏览: 169
这个warning的意思是在一个extern变量的定义中出现了初始化器,但是extern变量是在其他地方定义的。这可能导致重复定义的错误。这个问题可以通过将初始化器移动到变量的声明中来解决,或者将变量的定义放在一个源文件中,并在其他源文件中使用extern关键字来声明它而不是定义它。例如:
在头文件中声明:
extern float Filter_factor;
在一个源文件中定义:
float Filter_factor = 0.5;
在其他源文件中使用:
extern float Filter_factor;
相关问题
'extern' variable has an initializer [-Wextern-initializer]
这个编译警告是因为在声明一个 extern 变量时给它赋了一个初始值。extern 变量是在别的文件中定义的全局变量,本文件中只是声明它的存在,不应该给它赋值。
如果你需要在本文件中使用这个变量的初始值,可以将这个变量定义在本文件中,并且在定义时同时初始化它。如果你只是想使用这个变量,不需要定义它,只需要在本文件中声明它即可。例如:
```
// 在其他文件中定义的全局变量
extern int global_var;
// 在本文件中声明全局变量的存在
extern int global_var;
// 在本文件中定义全局变量并初始化
int global_var = 10;
```
'extern'variable has an initializer
在C语言中,"extern"关键字用于声明一个外部变量,并且可以给外部变量赋初值。
当您在一个源文件中使用"extern"关键字来声明一个变量时,它表示该变量是在其他源文件中定义的,并且可以在当前源文件中使用。在声明该变量时,您也可以给它赋初值。
以下是一个示例:
假设我们有两个源文件:main.c和globals.c。
在globals.c中定义一个外部变量:
```c
int globalVariable = 10;
```
在main.c中使用该外部变量:
```c
extern int globalVariable;
```
您可以选择在声明时给该外部变量赋初值:
```c
extern int globalVariable = 20;
```
这样,当您在main.c中使用该外部变量时,它将具有初始值20。
请注意,如果在globals.c中已经对该外部变量进行了初始化,那么在main.c中使用"extern"来声明并初始化该变量是不必要的。
希望这个例子能解答您的问题!如果您还有其他问题,请随时提出。