C中的static、extern关键字

C中的static、extern关键字,第1张

C中的static、extern关键字 static

1、块内声明的static变量在程序执行期间驻留在同一存储单元内。和每次程序离开所在块就会丢失值得自动变量auto不同,static变量会无期限地保留值

2、块内得static变量只在程序执行前进行一次初始化,而auto变量则会在每次出现时都进行初始化(当然,假设他有初始化代码)。

3、每次函数被递归调用时,它都会获得一组新的auto变量,但是如果函数含有static变量,那么此函数得全部调用都可以共享这个static变量。

4、虽然函数不应该返回指向auto变量得指针,但是函数返回指向static变量得指针是没有问题的。

5、static经常用来做信息隐藏,static修饰的变量只对内部是公开可见的,而外部是无法访问的。

extern

1、extern声明中的变量始终具有静态存储期限,变量的作用域依赖于声明的位置,如果声明在块内部,那么变量具有块作用域;否则变量具有文件作用域。

2、extern修饰的变量只是对变量进行声明,而不是定义,他只是提示编译器需要访问定义在别处的变量。变量在程序中可以有多次声明,但是只能有一次定义。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5699399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存