C语言中为什么函数的形参变量中不能使用static关键字修饰?
因为C语言规定 不可以用static 做形参
为什么这么规定,是因为没必要
静态局部变量的特点,是生存周期不被函数限制
每次调用函数时,静态变量还是上次退出的值。 除此外 和普通局部变量没区别
而参数, 每次调用的时候, 形参的值其实就是实参决定的
换句话说,每次调用函数, 形参都会被重新初始化或者说赋值
这样的话, 用static就没什么意义了,以为完全没机会保留上次的值,必然会被重写的。
既然没意义,C就规定了,形参不许static
static 关键字修饰函数时,函数的作用范围仅限于当前的 .c 文件。c 语言并不支持函数的嵌套定义,因此此作用范围的大小是固定的。一般在开发中,所有不需要对外部提供的函数最好都定义为 static 类型,这样此函数名仅仅作用与当前的源文件,我们就可以在其它的源文件中定义相同名字的函数而不用担心编译器报重复定义的错误了。