extern和static
时间: 2023-11-12 07:09:36 浏览: 41
extern和static是C++中的两个关键字,它们都可以用于函数和变量的声明和定义。
extern关键字用于声明一个在其他文件中定义的全局变量或函数,它告诉编译器该变量或函数的定义在别的文件中,需要在链接时进行连接。在头文件中使用extern声明函数或变量,可以在其他文件中使用该函数或变量。
static关键字有两种用法,一种是用于局部变量,表示该变量在程序运行期间只被初始化一次,不会被销毁,可以在函数调用之间保持其值。另一种用法是用于全局变量或函数,表示该变量或函数只在当前文件中可见,不能被其他文件访问。
举个例子,如果在一个头文件中声明了一个全局变量,可以在其他文件中使用extern关键字来引用该变量;如果在一个函数中定义了一个静态变量,该变量的值会在函数调用之间保持不变。
相关问题
extern和static一起使用
在C语言中,extern关键字用于声明一个变量或函数是在其他文件中定义的,而不是在当前文件中定义的。而static关键字则用于限制一个变量或函数的作用域只在当前文件中有效。
当extern和static一起使用时,通常是在一个文件中定义一个静态变量并使用extern关键字在其他文件中声明这个变量。这样可以在多个文件中共享同一个静态变量。
例如,在文件A中定义了一个静态变量x:
```
static int x = 0;
```
在文件B中使用extern关键字声明变量x:
```
extern int x;
```
这样就可以在文件B中使用变量x,而且x的值与文件A中的值是相同的。注意,如果在文件B中再次定义x,则会产生编译错误。
extern和static的作用
extern和static都是C语言中的关键字,用于控制变量和函数的作用域和链接属性。
extern用于声明一个变量或函数是在其他文件中定义的,可以在当前文件中使用。static用于限制变量或函数的作用域,使其只能在当前文件中使用。
具体来说,extern用于声明全局变量或函数,表示该变量或函数在其他文件中定义,可以在当前文件中使用。而static用于声明局部变量或函数,表示该变量或函数只能在当前文件中使用,不能被其他文件访问。
总之,extern和static都是用于控制变量和函数的作用域和链接属性,可以根据需要灵活使用。