static 变量 和 static 函数各有什么特点

如题所述

第1个回答  2019-07-30
1)、变量放程序全局存储区调用候保持原赋值点与堆栈变量堆变量区别
2)、变量用static告知编译器自仅仅变量作用范围内见点与全局变量区别
Tips:
A.若全局变量仅单C文件访问则变量修改静态全局变量降低模块间耦合度;
B.若全局变量仅由单函数访问则变量改该函数静态局部变量降低模块间耦合度;
C.设计使用访问态全局变量、静态全局变量、静态局部变量函数需要考虑重入问题;
D.我需要重入函数我定要避免函数使用static变量(函数称:带内部存储器功能函数)
E.函数必须要使用static变量情况:比某函数返值指针类型则必须static局部变量址作返值若auto类型则返错指针
函数前加static使函数静态函数处static含义指存储式指函数作用域仅局限于本文件(所称内部函数)使用内部函数处:同编写同函数用担自定义函数否与其文件函数同名
扩展析:术语static着寻历史.起初C引入关键字static表示退块仍存局部变量随staticC第二种含义:用表示能其文件访问全局变量函数避免引入新关键字所仍使用static关键字表示第二种含义C++重用关键字并赋予与前面同第三种含义:表示属于类属于类任何特定象变量函数(与Java关键字含义相同)
全局变量、静态全局变量、静态局部变量局部变量区别变量:全局变量、静态全局变量、静态局部变量局部变量
按存储区域全局变量、静态全局变量静态局部变量都存放内存静态存储区域局部变量存放内存栈区
按作用域全局变量整工程文件内都效;静态全局变量定义文件内效;静态局部变量定义函数内效程序仅配内存函数返该变量消失;局部变量定义函数内效函数返失效全局变量(外部变量)说明前再冠static
构静态全局变量全局变量本身静态存储式
静态全局变量静态存储式
两者存储式并同两者区别虽于非静态全局变量作用域整源程序
源程序由源文件组非静态全局变量各源文件都效
静态全局变量则限制其作用域
即定义该变量源文件内效
同源程序其源文件能使用由于静态全局变量作用域局限于源文件内能该源文件内函数公用
避免其源文件引起错误
析看
局部变量改变静态变量改变存储式即改变存期全局变量改变静态变量改变作用域
限制使用范围
static函数与普通函数作用域同仅本文件前源文件使用函数应该说明内部函数(static)内部函数应该前源文件说明定义于前源文件外使用函数应该文件说明要使用些函数源文件要包含文件
全局变量静态变量没手工初始化则由编译器初始化0局部变量值知
相似回答
大家正在搜