其实这问题没什么可讨论的,C#不支持局部静态变量。 但还是想了一下C#为什么不支持局部静态变量,以下均是个人想法。 C++和C支持局部静态变量,也就是在一个函数的内部声明一个静态变量,这种变量的特定如下: 静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始 ...
常量存储总结局部变量、静态局部变量、全局变量、全局静态变量、字符串常量以及动态申请的内存区 1、局部变量存储在栈中2、全局变量、静态变量(全局和局部静态变量)存储在静态存储区3、new申请的内存是在堆中4、字符串常量也是存储在静态存储区 补充说明:1、栈中的变量内存会随着定义所在区间的结束自动释放; ...
分类:
编程语言 时间:
2016-09-18 10:08:32
阅读次数:
161
1:隐藏 假如一个工程中存在a.c、 b.c 以及main.c等C文件。 . 静态函数 在函数的返回类型前加上关键字static,函数就被定义成为静态函数。 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。 . 局部静态变量 在局部变量之前加上关 ...
分类:
其他好文 时间:
2016-09-11 01:23:32
阅读次数:
194
static主要有三个作用:(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍:一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, register。其中register不常用到,下面主要说说auto和static的区别。
存储空间分配和生存周期不同
auto类型局部变量就是普通...
分类:
编程语言 时间:
2016-05-12 20:21:26
阅读次数:
165
静态变量的内存分配和初始化
全局变量、non-local static变量(文件域的静态变量和类的静态成员变量)在main执行之前的静态初始化过程中分配内存并初始化;local static 变量(局部静态变量)则是在第一次使用时分配内存并初始化。这里的变量包含内置数据类型和自定义类型的对象。
静态变量初始化的线程安全性说明
非局部静态变量一般在main执行之前的静态初始化过...
分类:
编程语言 时间:
2016-05-12 20:19:11
阅读次数:
259
c语言中:局部静态变量外部静态变量c++中:局部静态变量外部静态变量/函数静态数据成员/函数1、局部静态变量static局部静态变量存储于静态存储区,在程序运行期间不释放,跟局部变量相比,作用域相同,但是生命周期不同。在运行时只初始化一次。若不进行初始化,系统自动初始化..
分类:
编程语言 时间:
2016-05-07 01:15:42
阅读次数:
338
非常值得借鉴的做法,基于引用计数和局部静态变量,代码比较简单不加详解。 ...
分类:
其他好文 时间:
2016-05-06 07:07:35
阅读次数:
141
一、线程安全1、线程安全函数:C语言中局部变量是在栈中分配的,任何未使用静态数据或其他共享资源的函数都是线程安全的。(1)对于同一进程的不同线程来说,每个线程的局部变量都是私有的,而全局变量、局部静态变量、分配于堆的变量都是共享的,即是非线程安全的。(2)在对这..
分类:
编程语言 时间:
2016-05-05 22:54:12
阅读次数:
519
说明上其实很明白,支持多线程,防止重复创建,同时支持如果删除以后就不在创建,利用局部静态变量进行标记。挺通用,看来下次写个c11版本的 ...
分类:
其他好文 时间:
2016-05-05 08:22:13
阅读次数:
240
变量的可见性(即作用域)和生命期既有区别,又有联系。 一个变量在程序的某处没有可见性,但生命期任然可以存在,比如局部静态变量的可见性在它所在的函数里面,在函数外部不可访问,但是它的生命期确是整个程序的运行期间;而一个变量生命期结束,它也就没有了可见性,就像局部变量,随着栈空间的释放,它也就不存在了, ...
分类:
其他好文 时间:
2016-04-28 09:20:40
阅读次数:
142