静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。
关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。 使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。

c语言中static的语义

1.static变量:

1).局部

a.静态局部变量在函数内定义,生存期为整个源程序,但作用域与自动变量相同,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,但不能使用它。

b.对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。

2).全局

全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。但是他们的作用域,非静态全局 变量的作用域是整个源程序(多个源文件可以共同使用); 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。

2.static函数(也叫内部函数)只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用。

区别于一般的非静态函数(外部函数) static在c里面可以用来修饰变量,也可以用来修饰函数。 先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不包含对,不要弄混。

C语言中使用静态函数的好处相关推荐

  1. C语言中static的作用及C语言中使用静态函数有何好处

    转自:http://www.jb51.net/article/74830.htm 在C语言中,static的作用有三条:一是隐藏功能,二是保持持久性功能,三是默认初始化为0. 在C语言中,static ...

  2. C语言中的静态函数的作用

    转载 在C语言中为什么要用静态函数(static function)? 如果不用这个static关键字,好象没有关系.那么,用了static以后,有什么作用呢? 我们知道,用了static的变量,叫做 ...

  3. C语言中的 static 函数

    整理来自CSDN.这些内容在书本上学习到,而在实际应用时会比较模糊或被忽视. 一.C程序一直由下列部分组成: 正文段--CPU执行的机器指令部分:一个程序只有一个副本:只读,防止程序由于意外事故而修改 ...

  4. C语言中的静态变量和静态函数

    C中的静态变量 基本上,声明静态变量时,它们仅创建它们的单个副本,也称为类变量 .它们保留在相应范围内分配的值,并且不会在其新范围内再次初始化变量. 静态变量在代码执行期间保留在内存空间中. 静态变量 ...

  5. c语言静态函数调用静态变量_C语言中的静态变量和函数

    c语言静态函数调用静态变量 C中的静态变量 (Static Variables in C) Basically, when static variables are declared, they cr ...

  6. golang go语言_在Go语言中无需反思即可使用Lodash的好处

    golang go语言 by Tal Kol 通过塔尔科尔 在Go语言中无需反思即可使用Lodash的好处 (The benefits of using Lodash in the Go langua ...

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

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

  8. 关于C语言中定义static变量的解释

    在C语言中static类型的变量的意思其实和它的本意差不多,表示"静态"或者"全局"的意思,用来修饰变量和函数.经static修饰过后的变量或者函数的作用域或者 ...

  9. 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

    文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...

最新文章

  1. 输入网址按回车,到底发生了什么
  2. cmd运行Java中文乱码,无法加载主类Error: Could not find or load main class
  3. 分享让人折服的优秀代码基因
  4. c语言中穷竭算法,hihocoder#1054 : 滑动解锁(深度优先搜索)
  5. 开发app用户协议_家电商城APP开发,方便用户选购家电商品
  6. fnCustomBootTask for local sandbox 在何处赋值
  7. lambdas for_Lambdas:来到您附近的Java 8!
  8. 【转】二维异形件排版算法介绍(三)
  9. dblink查询_分库数据如何查询统计
  10. 注册表操作命令reg
  11. python高级-异常(13)
  12. win+shift+s截图保存在哪_今天才发现,原来不使用工具,电脑也能快速截图,你用过哪些?...
  13. 央视影音 for Mac 1.2.1 中文版 – CCTV和地方卫视直播软件
  14. php仿u8系统模板_用友U8:项目型制造企业的信息化模板
  15. GB28181实现对安防摄像头的直播回放控制
  16. Wayland是什么
  17. 读写偏斜现象的初学者指南
  18. 不看会后悔系列之好看又好用的样机模板推荐!
  19. 学习前端第三天-----小程序制作
  20. Java Swing入门基础

热门文章

  1. .NET常用功能和代码[总结与收藏] (转)
  2. java面向对象的特征 —(13)
  3. Docker 图形界面管理工具 -- Portainer
  4. 15、iOS开发之duplicate symbols for architecture x86_64错误
  5. [LINK]用Python计算昨天、今天和明天的日期时间
  6. Vue 下拉刷新及无限加载组件 - 有你便是晴天 - 博客园
  7. mac 卸载编辑器卸不干净
  8. 案例篇-HBase RowKey 设计指南
  9. kaggle中zillow比赛中模型融合的方法及其代码
  10. 30秒无需编码完成一个REST API服务