为什么会是10个2,因为每次执行main 里面的程序后,“a”是局部变量,都会刷新为1,所以搞10次,每次都是a+1; 所以是10个2。
static 修饰局部变量,改变了局部变量的生命周期,改变了变量的存储类型。
栈区:局部变量和函数的参数
堆区:动态内存分配!!
静态区:全局变量、static修饰的静态变量。
static 修饰的全局变量,只能在自己所在的源文件(.c)内部可以使用,其他源文件不可以使用。
全局变量,在其他原文件内部可以被使用,是因为全局变量具有外部链接属性。
但是被static修饰之后,变成了内部链接属性,其他源文件不能链接到这个静态全局变量
!
卡了许久~ 解惑之后突感大彻大悟
两个文件编写求和函数,从另一个文件引用Add , 后缀要为 .c . cpp就不可以调用,这个得记住。
extern
static 修饰函数,使得函数只能在自己所在得源文件内部使用,不能在其他源文件内部
本质上将函数得外部链接属性,改编成内部链接属性