C语言中static和extern关键字的用法

C/C++语言中static和extern关键字的用法

今天面试被问到static和extern的用法,感觉不是很熟系,在此总结下。

静态变量static的用法

使用static关键字修饰变量时,我们称此变量为静态变量。静态变量又分为全局静态变量和局部静态变量。全局静态变量的一个优势就是可以防止其它文件调用该变量,即防止文件变量间的相互干扰。局部变量只有局部作用域可以共享静态变量,且只有程序结束时才释放该成员变量(如本次调用该变量其实是上次调用该变量之后的值)。
另外说明几点:1、static成员变量位于全局区、普通成员变量位于堆区;2、静态成员变量既可以通过对象名访问,也可以通过类名访问,普通成员变量只能通过对象名访问。

extern关键字的用法

使用extern修饰变量或者函数,可以在另一个文件中调用该变量或者函数。(注意,要想通过extern使用另一个文件的变量,该变量必须是全局变量)示例如下;
下面展示一些 内联代码片

// main.c中的代码
int main(){
extern int num;
return 0;
}

其中num为另一个文件的全局变量
下面展示一些 内联代码片

// another.c
int num = 10;
int main(){
return 0;
}

通过exrtern声明该变量的类型、名称,并在该文件中使用该变量。

你可能感兴趣的:(C++,c,c语言,开发语言)