C语言 - static 解读
2021-03-26 18:28
标签:初始化 外部 var 就会 detail pretty 运行 静态 不同 static在C语言中主要是两种用法
使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。 转载至:https://blog.csdn.net/y780465649/article/details/52155641 C语言 - static 解读 标签:初始化 外部 var 就会 detail pretty 运行 静态 不同 原文地址:https://www.cnblogs.com/Gustavo-G/p/13683781.html
所谓”记忆性”是指在两次函数调用时, 在第二次调用进入时, 能保持第一次调用退出时的值.void staticLocalVar()
{
static int a = 0; // 运行期时初始化一次, 下次再调用时, 不进行初始化工作
printf(“%d”,a);
a++;
}
int main()
{
staticLocalVar(); // 第一次调用, 输出a=0
staticLocalVar(); // 第二次调用, 记忆了第一次退出时的值, 输出a=1
return 0;
}
1. “记忆性”, 程序运行很重要的一点就是可重复性, 而static变量的”记忆性”破坏了这种可重复性, 造成不同时刻至运行的结果可能不同.
2. “生存期”全局性和唯一性. 普通的local变量的存储空间分配在stack上, 因此每次调用函数时, 分配的空间都可能不一样, 而static具有全局唯一性的特点, 每次调用时, 都指向同一块内存, 这就造成一个很重要的问题 ---- 不可重入性