static
声明的变量在C语言中有两方面的特征:
  1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。
  2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
Tips:
  A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;
  B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;
  C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;
  D.如果我们需要一个可重入的函数,那么,我们一定要避免函数中使用static变量(这样的函数被称为:带“内部存储器”功能的的函数)
  E.函数中必须要使用static变量情况:比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。

函数前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函数)。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。

扩展分析:术语static有着不寻常的历史.起初,在C中引入关键字static是为了表示退出一个块后仍然存在的局部变量。随后,static
在C中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。为了避免引入新的关键字,所以仍使用static关键字来表示这第二种含义。最后,
C++重用了这个关键字,并赋予它与前面不同的第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量和函数(与Java中此关键字的含义相
同)。

static 函数和变量相关推荐

  1. c 多文件全局变量_C/CPP : static 关键字 及 变量函数的不同

    C/CPP : static 关键字 及 变量函数的不同 本文由zaccur整理编辑,如需转载请注明出处. 综述 static关键字是C, C++中都存在的关键字.从字面理解是"静态的&qu ...

  2. c语言中的static变量和static函数

    在C语言中,static的字面意思很容易把我们导入歧途,其实它的修饰变量作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函 ...

  3. static变量 static函数

    首先要明白c语言的存储空间 转自:http://www.52rd.com/blog/Detail_RD.Blog_imjacob_5297.html 一.c程序存储空间布局 C程序一直由下列部分组成: ...

  4. c语言静态变量存在堆还是栈,c 类 static 函数 什么样是静态变量?嵌入式C语言的堆栈管理如何实现...

    C语言中静态变量是什么意思,有什么作用,static在数据类型前面表示什么 最近刚看了C存储类的章节.所以来说说. C语言为变量提供了⑤种不同的存储模型,或者说是存储类. ①个变量可以用存储时期描述, ...

  5. 浅谈C语言static关键字 静态变量 函数

    目录 static对变量修饰 局部变量 全局变量 函数 static对变量修饰 局部变量 普通局部变量存储于进程栈空间,使用完毕会立即释放. 静态局部变量存储于进程的全局数据区,即使函数返回,它的值也 ...

  6. static变量和static函数的用法摘抄

    一. static 变量 static变量大致分为三种用法 1. 用于局部变量中,成为静态局部变量. 静态局部变量有两个用法,记忆功能和全局生存期. 2. 用于全局变量,主要作用是限制此全局变量被其他 ...

  7. C语言中的 static变量、static函数

    Static variable & function 1.Static variable 2.静态局部变量(static local variable) 3.静态全局变量(static glo ...

  8. static变量、static函数与普通变量、普通函数的区别

    转自:http://blog.163.com/sunshine_linting/blog/static/44893323201191294825184/ 全局变量(外部变量)的说明之前再冠以stati ...

  9. C语言中的 static变量(全局和局部)、static函数总结

    简介: C语言中的 static变量(全局和局部).static函数总结 文章目录 本博文的简述or解决问题? 同步博文: static 变量: 静态局部变量: 静态全局变量: static 函数-. ...

最新文章

  1. LeetCode 64. Minimum Path Sum(最小和的路径)
  2. viewer vue 文档_vue中使用viewerjs
  3. 开发板、Windows、Ubuntu三者互联——韦东山嵌入式Linux学习笔记08
  4. MySQL视图附带例子详解(小白都能懂哦)
  5. 123 Best time to buy and sell stock iii
  6. Spring框架学习笔记06:Spring JdbcTemplate入门
  7. shell 中浮点数和整数的比较
  8. mysql maria引擎_MySQL/mariadb知识点——存储过程及存储引擎
  9. HDU2501 Tiling_easy version【递推+打表】
  10. latex字母/数字双线字体
  11. 简易矩阵乘法计算器2.0
  12. PHP用什么标签方便,PHP_用途相似的标签:acronym与abbr,有的时候为了方便传阅或者记 - phpStudy...
  13. Quartz_2.2.X学习系列四: Tutorials - Lesson 4: More About Triggers
  14. 地税系统WEB打印提示未注册
  15. WPS 宣布将推出“WPS AI”
  16. 【RDMA】RDMA编程 和相关资料
  17. Resid------set
  18. 【无标题】解决“该项目不在请确认该项目位置,然后重试” 文件无法删除问题
  19. 最佳治理实践?一文读懂YFI运行机制
  20. 常见linux命令介绍-ps

热门文章

  1. Burp Suite爆破模块中的四种模式的区别详解和演示(暴力破解)
  2. 第八章 组织结构设计与类型
  3. ps2键盘测试软件,stm32_ps2键盘显示测试程序
  4. ue4 改变枢轴位置_[UE4蓝图][Materials]虚幻4中可互动的雪地材质完整实现(一)
  5. 【论文精读】基于周期编码深度自编码器的心肺音盲单耳声源分离
  6. 题目98-3:围成一圈数三报数且出列——假设有10个人围成一圈,从1开始报数,数到3的人,让他出列,下一个人重新从1开始报数,数到3的人,让他出列……以此类推,把依次出列的9个人的编号打印出来
  7. 自注意力机制与注意力机制
  8. DH 加密算法的使用
  9. java 假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
  10. 3D角色硬表面建模技巧与思路分享【案例解析】