static对函数作用:表示定义和声明一个内部函数 extern对函数作用:表示定义和声明一个外部函数。(可省略extern,因为默认是extern) 3.补充:static对局部变量:static对局部变量的作用于其对全局变量的作用不同。 1.static修饰局部变量时,是延长局部变量的声明周期,程序结束的时候,该局部变量才会被销毁。 2.static并没有...
Static 一般两个作用,规定作用域和存储方式。对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话。此变量只在当前文件可见;对于static函数也是在当前模块内函数可见. Static const是二者的结合, 即是只读的 又是在当前文件(模...
extern还可以用于编写库时减少obj码量,以及实现语言链接性。例如,使用extern "C"修饰可以引用C库函数、C的源文件等。
首先要注意的是,extern变量一定有链接性,但可能是内部链接性;static变量可能无链接性,也可能有外部链接性。 下面是一个不常见的例子,后面会提到: staticvoidf();staticinti=0;// #1voidg(){externvoidf();// internal linkageinti;// #2 i has no linkage{externvoidf();// internal linkageexterninti;/...
*static作用1.修饰局部变量*延长这个局部变量的生命周期,只要成员运行,局部变量就会一直存在*局部变量只会分配一次内存,为什么?用static修饰的代码,只会在程序一启动,就会执行,以后就不会再执行2.修饰全局变量*只会修改全局变量的作用域,表示会只能是当前文件使用 ...
extern 作用: 1.声明一个全局变量,不能定义变量 注意: extern 修饰的变量不能初始化 使用场景 : 一般用于声明一个全局变量 4static和const一起使用 //表示修饰的内容只能在本文件中使用,并且是只读的,不能改 5.static不需要共享我们的全局常量 extern 共享我们使用全局变量...
extern: 其实我们平常定义的void test();这样子的函数, 它就是外部函数, 只是extern可以省略不写, 所以很多人都忽略了extern的存在, 如果在函数的前面加上extern, 那么就是可以完整的定义一个外部的函数啦. static: 这个代表的是内部函数, 所谓的内部函数就是只能在该文件里面调用, 不能在别的文件里面使用, 这...
extern的使用: extern适用于外部变量,即链接性为外部链接性的变量,即无static+全局作用域。extern主要用于引用外部变量,如在a.cpp中定义了一个外部变量sb,则在main.cpp中要使用它时使用extern sb; 来说明。另外在main.cpp中引用sb也需要注意作用域,如在一个代码段中引用,则在代码段外仍不可用与不可见。在函数...
C语言基础:C语言static和extern(2) - 作用与变量 上一节, 我们讲解了static和extern对于函数的作用, 这次我们来讲解static和extern对于变量的作用. 首先, 我们来看一个例子: 输出的结果: 有人会疑问, 为什么我在main.c文件里面定义的全局变量会和在one.c文件里面的全局变量的输出结果和地址是完全一样的呢?