1)全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。 2)全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。 2.3...
前面说过,所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问。此例中,i是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件static_main.c是可见的。如果加了static,就会对其它源文件隐藏。例如在i和msg的定义前加上static,static_main.c就看不到它们了。利用这一特性可以...
1)全局变量是不显式用 static 修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过 extern 全局变量名的声明,就可以使用全局变量。 2)全局静态变量是显式用 static 修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用 extern 声明也不能...
解析:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
static变量 static变量:在程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)存储空间的一类变量(无论是否在函数体内都是如此)。 static全局变量:相当于全局变量,但只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它,而extern全局变量可以。
1>static局部变量:静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失, 下一次依据上一次结果值。 2>普通局部变量:局部变量在定义它的函数内有效,但是函数返回后失效。 3>static全局变量:静态全局变量只在定义它的文件内有效。
1.static修饰局部变量总结 static修饰的局部变量具有“记忆”功能,其只会被初始化一次,其生命周期较普通局部变量变长了,从局部变为全局,即从程序开始到程序结束,但其作用域和普通局部变量一样,依然只能作用域函数内或者所在代码块内。 2.static修饰全局变量总结 ...
3、data包含静态初始化的数据,所以有初值的全局变量和static变量在data区。段的起始位置也是由连接定位文件所确定,大小在编译连接时自动分配,它和你的程序大小没有关系,但和程序使用到的全局变量,常量数量相关。 4、stack保存函数的局部变量和参数。是一种“后进先出”(last in first out,lifo)的数据结构,这意味...
static是C++中的一个关键字,用于控制变量的存储方式和可见性。它可以用于修饰变量、函数以及类的成员变量和成员函数。 2. 阐述static全局变量的定义和特性 定义:在全局作用域(即所有函数外部)中,使用static关键字修饰的变量称为static全局变量。 特性: 存储方式:static全局变量存储在全局数据区的静态变量区,与全局变量...