搜索
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F1] static修饰全局变量、局部变量及函数的用法

[复制链接]
70|3
 楼主 | 2021-1-13 15:54 | 显示全部楼层 |阅读模式
1.static修饰全局变量    在全局变量前加static,全局变量就被定义成为一个全局静态变量。
    特点如下:
   1)存储区:静态存储区没变(静态存储区在整个程序运行期间都存在);
   2)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。非静态全局 变量的作用域是整个源程序(多个源文件可以共同使用); 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。

     好处:   
    1)不会被其他文件所访问,修改;
    2)其他文件中可以使用相同名字的变量,不会发生冲突。

2.static修饰局部变量    在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。
    特点如下:
  1)存储区:有栈变为静态存储区rw data,生存期为整个源程序,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,
        但不能使用它;
  
  2)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

3. static修饰函数     在函数的返回类型前加上关键字static,函数就被定义成为静态函数。
     函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用
     好处:
    1)其他文件中可以定义相同名字的函数,不会发生冲突
    2) 静态函数不能被其他文件所用。

使用特权

评论回复
| 2021-1-13 17:38 | 显示全部楼层
支持下,更正了一下我以前错误的看法,文章收藏了。

使用特权

评论回复
| 2021-1-14 10:46 | 显示全部楼层
进来学习了,长知识

使用特权

评论回复
| 2021-1-15 08:01 | 显示全部楼层
c语言教材

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表