static 问题
- 提问者网友:最美的风景
- 2021-04-26 23:07
- 五星知识达人网友:往事埋风中
- 2021-04-26 23:33
1、static全局变量和普通全局变量:都存储在同一个区域上——全局区(静态区),程序结束时由系统释放,似乎没什么区别;
2、static变量不管是全局的还是局部的,都存储在全局区(静态区),普通局部存储在栈上,程序执行完这个“局部”区,系统将该普通局部变量出栈,释放掉;而static局部变量退出“局部”区不会释放掉,但它的作用范围只能在定义它的那个“局域”里;
3、static函数和普通函数:跟变量差不多吧,只是变量是存储在变量区,函数是存储在代码区里;
- 1楼网友:不想翻身的咸鱼
- 2021-04-27 02:28
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就 是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同 。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文 件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作 用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。 由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可 以避免在其它源文件中引起错误。
把局部变量改变为静态变量后是改变了它的存储方式即改变了它的 生存期(静态局部变量在程序运行结束释放空间,而普通静态局部变量在函数退出时释放空间)。 把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。
static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明 为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以 外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 (用static声明的即内部函数,内部函数指只能被本文件的其他函数所调用的函数, 内部函数在C++实际上可以通过类名修饰符访问 其他均为外部函数)
- 2楼网友:青尢
- 2021-04-27 01:40
- 3楼网友:执傲
- 2021-04-27 00:01
http://msdn.microsoft.com/zh-cn/library/98f28cdx(vs.80).aspx
你去看看对有帮助没··