auto修饰符:
局部变量默认用auto修饰;且auto只能修饰 函数内的局部变量
static修饰符:
static可以修饰全局变量,也可以修饰局部变量
修饰全局变量时:如果这个全局变量要被其他.c文件用extern调用的话,则会出错,调用不了。
所以全局变量被static修饰的话,全局变量的作用范围只会局限在声明它的本.c
文件中,而不能被其他.c文件用extern调用。
static修饰全局变量:
在test1.c的全局变量te前加static修饰:
test.c文件用extern调用test1.c文件的 全局变量int.te :
出现错误:无法解析外部符号 te:
static修饰局部变量:
使局部变量的作用范围不再局限于函数体内,而是可以穿梭在各个函数体内而不被再次初始化。
rute函数里面声明定义了两个static变量:People和count
在Add函数内用不同的形参调用了三次rute函数:
(仔细看哦,看看你细不细心哈哈哈哈哈)
运行结果:
因为rute函数被调用了三次(形参分别是3、5、4),所以最后People==3 ,最后count==3+5+4
(你的小脑瓜运算的是和上面一样的吗,如何是一样的,那恭喜你,你已经大致理解了static修饰局部变量的用法!!!)
继续看:
那么,当我们把count的static修饰符去掉:如下,其他不变
运行结果:(这估计是上一个程序很多人想错的结果对象哈哈哈哈哈)