C/C++ extern和static的使用详解
extern关键字的使用
- 定义
extern是C/C++中的关键字之一,表示当前变量或函数是在其他文件中定义的,需要在该文件中使用。也就是说,extern声明的变量或函数已经在其他文件中定义,当前文件只是需要使用它而已。 -
示例
例如,在A.c文件中定义了变量x,而在B.c文件中需要使用变量x,可以在B.c文件中添加extern声明语句,示例代码如下:```
// A.c文件
int x = 10;// B.c文件
extern int x; // 在B.c文件中添加extern声明语句
int main()
{
printf("%d\n", x);
return 0;
}
```
此时编译B.c文件,就会在链接时将A.c文件中定义的x变量链接进来,并打印出正确的结果10。
static关键字的使用
- 定义
static是C/C++中的关键字之一,表示当前变量或函数的作用域局限于本文件,不能被其他文件访问。也就是说,static定义的变量或函数只有在当前文件中可以使用。 -
示例
例如,在A.c文件中定义了一个静态变量x,并在A.c文件的两个函数中使用,示例代码如下:```
// A.c文件include
static int x = 10;
void Func1()
{
printf("Func1 x = %d\n", x);
}
void Func2()
{
printf("Func2 x = %d\n", x);
}
int main()
{
Func1();
Func2();
return 0;
}
```
函数Func1和Func2中都使用了静态变量x,此时编译A.c文件,就会在链接时把x变量链接到A.c文件中,而不会被其他文件访问到。
总结
- extern和static都是用来控制变量或函数的作用域的关键字。
- extern常用于不同文件之间共享变量或函数。
- static常用于限制变量或函数的作用域仅在本文件中。
以上是关于C/C++中extern和static关键字的详细介绍。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C/C++ extern和static的使用详解 - Python技术站