extern+static
时间: 2024-03-19 19:38:12 浏览: 65
extern和static是C语言中用于修饰变量和函数的关键字。
1. extern关键字:
- 当在一个文件中声明一个变量或函数时,该变量或函数的作用域仅限于当前文件。如果想在其他文件中使用该变量或函数,需要使用extern关键字进行声明。
- extern关键字告诉编译器,该变量或函数在其他文件中已经定义或声明过了,可以在当前文件中使用。
- 例如,如果在文件A中定义了一个全局变量int num,并在文件B中想要使用该变量,可以在文件B中使用extern int num;进行声明。
2. static关键字:
- static关键字用于修改变量和函数的作用域。
- 当static修饰全局变量时,该变量的作用域仅限于当前文件,其他文件无法访问该变量。
- 当static修饰局部变量时,该变量的生命周期会延长到整个程序运行期间,而不是只在函数执行期间存在。
- 当static修饰函数时,该函数的作用域仅限于当前文件,其他文件无法调用该函数。
- 例如,如果在文件A中定义了一个静态全局变量static int num,并在文件B中想要使用该变量,是无法直接访问的。
相关问题
extern和static
extern和static是C++中的两个关键字,它们都可以用于函数和变量的声明和定义。
extern关键字用于声明一个在其他文件中定义的全局变量或函数,它告诉编译器该变量或函数的定义在别的文件中,需要在链接时进行连接。在头文件中使用extern声明函数或变量,可以在其他文件中使用该函数或变量。
static关键字有两种用法,一种是用于局部变量,表示该变量在程序运行期间只被初始化一次,不会被销毁,可以在函数调用之间保持其值。另一种用法是用于全局变量或函数,表示该变量或函数只在当前文件中可见,不能被其他文件访问。
举个例子,如果在一个头文件中声明了一个全局变量,可以在其他文件中使用extern关键字来引用该变量;如果在一个函数中定义了一个静态变量,该变量的值会在函数调用之间保持不变。
extern register static
extern、register、static是C语言中的三个关键字。
extern关键字用于函数和变量的声明,它表示这个函数或变量在其它文件中定义,这里只是声明,让编译器知道这个函数或变量的存在,可以在本文件中使用它。
register关键字用于变量的声明,它表示这个变量将被频繁地使用,建议编译器将其放在寄存器中,以提高程序运行速度。
static关键字用于变量和函数的声明,它表示这个变量或函数在本文件中可见,其它文件无法访问,同时,它也可以改变变量的存储方式,使其在程序生命周期内一直存在,不会随着函数的调用而被销毁。
阅读全文