全局变量和局部变量在内存中的区别是什么 存储位置不同。局部变量是在栈上的,全局变量是放在全局变量区,类似于堆上的一个空间。所以访问速度上 局部变量是要优于全局变量的。
关于全局变量和局部变量。 extern关键字为变量进行外部声明,也就是说这个变量已经被定义过,只需声明一下在其他文件内即可使用。static表明为全局的静态变量,该变量只能被本文件所使用,其他文件无法访问。auto型就是我们平时定义的类型,默认为autostatic表明为局部静态变量,主要性能是只被初始化一次,下次进入该函数时该变量是上次运行结束后的值。register作用是定义寄存器变量,为了让变量计算速度更快
同名全局变量,跟局部变量,如何访问
static局部变量和全局变量的区别 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文 件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作 用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的636f7079e79fa5e9819331333363386231函数公用,因此可 以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的 生存期(静态局部变量在程序运行结束释放空间,而普通静态局部变量在函数退出时释放空间)。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明 为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以 外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个。