C语言备忘录——static
2024-09-02 09:42:41
对于这个关键字我一直没有弄清楚,今天特地去花了一定的时间去理解这个关键字。在函数或变量声明时,在数据类型前加上 static 后会有以下几个效果
一、用于函数定义时:
1、函数的链接属性会被修改,从extrenal 变为internal
2、函数的存储类型与作用域不受影响
二、用于变量声明时:
1、将变量的存储类型从自动变成静态
2、链接属性和作用域不受影响
3、生命周期将被延续到整个程序结束
三、最重要的一点:
无论是函数还是变量,一但被冠上static 那么他们只能在被声明的文件中访问!
针对2.3我特别举个栗子:
#include <stdio.h> int fun(void); int main(void)
{
……
fun();
……
return ;
} int fun()
{
static int a;
……
}
这里如果 fun 中的 int a 没有限定符static那么当fun结束后 a 就会被回收,作用域从17行开始到函数结束。但现在就不同了,变量a的声明周期从原本的函数内变成了整个程序,程序开始运行就有了变量a了,到程序结束变量a才会被回收。
但是,但是,但是其作用作用域仍然变不变!
切记,无论是函数还是变量,static一定不会改变作用域,但一定会改变链接域!
最新文章
- 纯CCS绘制三角形箭头图案
- angularjs自带过滤器
- mysql用户权限设置
- CI框架源码阅读笔记3 全局函数Common.php
- js ==与===区别(两个等号与三个等号)
- 在Vista或更高版本Windows系统中, 获取超大图标的办法
- WinForm 中两个窗口之间传递数据
- android开发环境重装系统之后的配置
- Spring HTTP invoker 入门
- sql server 2008 学习笔记
- web微信开发前期准备最新详细流程
- C#打印九九乘法表
- IScroll某些手机下不触发ScrollEnd问题处理
- 虚拟机设置固定ip可以使shell远程连接到服务器
- fdisk磁盘分区与挂载
- vue实现购物车和地址选配(二)
- setfacl语法2
- C# 各类常见Exception 异常信息
- BG.VM--CentOS
- Android 获取系统默认输入法
热门文章
- 各种STL的基本用法
- CentOS7编译安装httpd-2.4.41
- HTML 5 <;em>; <;strong>; <;dfn>; <;code>; <;samp>; <;kbd>; <;var>; <;cite>; 标签
- redhat 7.6 ssh 服务配置
- 「BOI2007」Mokia
- 思科 ASA 系列防火墙 官方文档下载指南
- LeetCode 349,350 数组的交集
- GoJS组织结构图2
- AJAX的表单请求POST请求方式
- 机器学习、深度学习中的信息熵、相对熵(KL散度)、交叉熵、条件熵