您的位置:首页 > 编程语言 > C语言/C++

学习笔记(14):C语言 从小白到大神: 入门篇-变量的存储和引用,内部和外部函数...

2020-03-21 18:30 579 查看

立即学习:https://edu.csdn.net/course/play/8088/174675?utm_source=blogtoedu

1. 变量的存储类别

静态存储变量:在程序运行期间分配固定存储空间的变量

存储全局变量等

动态存储变量:在程序运行期间根据需要进行动态分配存储空间的变量

存储函数形参、局部变量、函数调用时现场的一些数据和返回的地址等

 

2. 局部变量的存储方式

(1)传统情形:函数调用时分配存储空间,函数执行完成后释放内存

(2)特殊情形:静态局部表变量:用static加以说明(能够保留原值,占用的存储单元不释放。在下一次调用该函数时,该变量的值就是上一次调用结束时的值)

局部静态变量说明:

(1)在静态存储区分配内存单元,程序整个运行期间不释放

(2)局部静态变量是在编译时赋予初值,只赋初值一次,在程序运行的时候,就已经有了初值,以后调用函数时不再进行赋值,而是保留上次调用结束时的值

(3)定义局部静态变量时,如果不赋初值,则系统自动赋值0

(4)虽然局部静态变量在函数调用结束后结果仍然存在,但其它函数不能引用它

(5)缺点:长期占用内存,降低了程序可读性;除非必要,尽量不使用

 

3. 全局变量跨文件引用

在引用该全局变量的文件中的头部做一个“外部变量说明”(使用extern),必须放在文件最开头,所有函数之前

在定义全局变量时前面增加static,则该全局变量只能在本文件中使用,其他文件不能引用

 

4. 函数的跨文件调用

根据函数能否被其他源文件调用,分为内部函数以及外部函数

内部函数:又称静态函数只能被本文件调用,定义时在最前边加一个static,形式如下:

static 类型标识符 函数名(形参表){...}

外部函数:不使用static定义,默认前面加了extern

调用其他文件的函数之前需要在本文件的开头声明该函数

 

5.static关键字用法总结

(1)在函数内部定义一个变量时使用static,该变量会存储在静态存储区,编译时进行初始化,若不赋初值,则自动初始化为0,以后调用该函数时该变量为上次调用结束后该变量的值

(2)在全局变量之前增加static,则该全局变量只能在本文件中引用

(3)在函数定义之前加static,则该函数只能在本文件中被调用

  • 点赞
  • 收藏
  • 分享
  • 文章举报
qq_40923121 发布了31 篇原创文章 · 获赞 0 · 访问量 252 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐