一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。 本质原因是 全局变量默认是具有外部链接属性的,在外部的文件中想使用,只要适当的声明就可以使用;但是全局变量被 static 修饰之后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用了,其他源文件,即使声明了,...
使用static修饰全局变量,会使得被static修饰的全局变量只能在本源文件内使用,不能在其他源文件内使用。 结论: ⼀个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。本质原因是全局变量默认是具有外部链接属性的,在外部的文件中想使用,只要适当的声明就可以使用;但是全局变量被 st...
static存储类别可以用于定义全局变量或局部变量。当用于定义全局变量时,表示该变量只能在本文件中使用,不能被其他文件访问。当用于定义局部变量时,表示该变量在函数调用结束后不会被销毁,而是保留上一次的值,直到程序结束。例如,下面的代码定义了一个static类型的全局变量b,它只能在本文件中使用,不能被其他文件访...
static和extern修饰局部变量 static修饰局部变量://作用:1)static定义的变量的作用域会得到延长,从程序启动到程序退出,但它并没有改变变量的作用域局部的static实际也是全局的//2) static定义变量的语句只会被执行一次extern是不能够修饰局部变量的 #include <stdio.h>/** **/voidsum(){//没有使用static修饰intn...
1、在全局变量和函数中 在全局变量前使用 static 关键字可以限定该变量的作用域为当前文件,在其他文件中无法访问。 在函数前使用 static 关键字可以将函数的作用域限定为当前文件,使其对其他文件不可见。 2、在局部变量中 在局部变量前使用 static 关键字可以改变该变量的存储位置,使其在整个程序执行期间保持存在,...
1、extern可以用来声明一个全局变量,但是不能用来定义变量 2、默认情况下,一个全局变量是可以供多个源文件共享的,也就说,多个源文件中同名的全局变量都代表着同一个变量 3、如果在定义全局变量的时候加上static关键字,此时static的作用在于限制该全局变量的作用域,只能在定义该全局变量的文件中才能使用,跟其他源文件...
在C语言中,extern、static、struct、enum、union和volatile等关键字具有特定的作用和用途。理解这些关键字的工作原理和应用场景,对于编写高效、可维护的代码至关重要。一、extern关键字extern关键字用于声明一个变量或函数,其定义在别的文件中。当你想在一个文件中使用另一个文件中定义的变量或函数时,可以使用extern...
1) 如果你在这个文件中定义的全局变量不打算给别人用,那么你就将它定义为static全局变量吧!因为这样你不必担心其他文件也定义了一个同名变量,在连接的时候出现重定义。 2) 如果你的全局变量是打算给其他文件使用的,那么就不要加上static,因为这样在其他文件中可以使用extern对该定义进行引用。
用static 关键字修饰的局部变量是静态局部变量; 静态局部变量存值如同全局变量, 区别在于它只属于拥有它的函数; 它也会被初始化为空. 用static 关键字修饰的全局变量是静态全局变量;静态全局变量只能用于定义它的单元。 用静态变量记录函数被调用的次数:
extern:用于声明一个外部全局变量 static:用于定义一个内部全局变量 声明和定义的区别:声明不会开辟存储空间, 定义会开辟存储空间 3 static来修饰局部变量 当使用static来修饰局部变量, 那么会延长局部变量的生命周期, 并且会更改局部变量存储的位置 , 将局部变量从栈转移到静态区中 ...