static关键字有三个主要作用:
1.修饰全局变量
2.修饰函数
3.修饰局部变量
(1)首先是修饰全局变量,就是变量只能在本文件中使用,不能在其他文件中使用
代码示例:vi 1.c
vi 2.c
编译:gcc 1.c 2.c -o main
./main
编译结果:
假设用上static关键字
编译出错:因为num被static修饰,只能在1.c文件中使用
(2)其次,可以用static修饰函数,作用也差不多,函数只能在本文件中调用
比如这次在2.c中用static修饰函数
编译的时候又会出错:因为在1.c中无法使用2.c中的函数
(3)static修饰局部变量,可以改变变量的生命周期,直到程序运行结束时才会被释放
经典笔试题示例:num存放在栈区,函数调用完会释放
编译结果:
用static修饰:num存放在静态数据区,程序运行结束才释放
编译结果: