extern float
时间: 2023-11-06 18:05:38 浏览: 94
根据提供的引用内容,extern是一个关键字,用于在一个源文件中声明一个在另一个源文件中定义的变量或函数。它的作用是告诉编译器在其他源文件中有一个全局变量或函数的定义,这样编译器就不会在当前源文件中为该变量或函数分配内存或生成代码。在C++中,extern可以用于声明全局变量和函数。在全局变量的声明中,extern关键字可以省略,因为全局变量默认情况下就是extern的。在函数的声明中,extern关键字也可以省略,因为函数默认情况下就是extern的。
相关问题
warning: 'extern' variable has an initializer [-Wextern-initializer] extern float Filter_factor = 0.5;
这个warning的意思是在一个extern变量的定义中出现了初始化器,但是extern变量是在其他地方定义的。这可能导致重复定义的错误。这个问题可以通过将初始化器移动到变量的声明中来解决,或者将变量的定义放在一个源文件中,并在其他源文件中使用extern关键字来声明它而不是定义它。例如:
在头文件中声明:
extern float Filter_factor;
在一个源文件中定义:
float Filter_factor = 0.5;
在其他源文件中使用:
extern float Filter_factor;
extern float a; void f(register double b) { static int c; auto char d; }
这段代码是一个函数定义,并且使用了一些存储类说明符。
- extern float a; 表示声明了一个名为 a 的外部变量,类型为 float。
- void f(register double b) 是函数 f 的定义,它有一个参数 b,类型为 double,且使用了 register 存储类说明符,表示尽可能地将变量存储在寄存器中。
- static int c; 是函数 f 中的一个局部变量,类型为 int,且使用了 static 存储类说明符,表示该变量只会被初始化一次,且在函数调用结束后仍然会保留该变量的值。
- auto char d; 是函数 f 中的另一个局部变量,类型为 char,且使用了 auto 存储类说明符,表示该变量是自动存储的,即在函数调用时动态地分配存储空间。
需要注意的是,这段代码并没有实际的功能,只是一个演示存储类说明符的例子。
阅读全文