变量类型全局、静态、局部和自动
Variable types global, static , local and auto
我想开发一个想要跟踪的系统系统中频繁发生的事件。我可以通过打电话来做到这一点一个函数,递增事件发生计数器,并打印其值,然后返回。自完成此操作,我需要一个可以保留其值的变量,即使在函数返回后,以便在下次调用函数时计数器的先前值可以增加 1,因此上。
根据您的意见,我们应该使用局部变量的类型,全局、静态还是自动?用有效的论据支持你的答案。
本地和自动相同,第四种类型是寄存器而不是本地。您不能使用 auto,因为它的变量在每次调用时都会重新定义。
全局或静态,具体取决于您的设计需求。如果要在其他文件中使用该变量,请将其全局化。
int count; // outside the function calls
如果希望它的作用域是该函数的本地范围,并且每次发生事件时递增,则使其在函数内是静态的
static int count = 0;
// variable is defined only once subsequent calls to it wont redefine it
如果您希望整个文件访问它而不是外部世界,则可以将其设置为全局和静态。
static int count = 0; // outside of any function calls.
相关文章:
- 函数局部静态变量:从性能角度来看的优点/缺点
- 关于读取有效 c++ 第 4 项(将非局部静态变量替换为局部静态变量)的问题
- 有什么需要,局部静态变量在编译时分配内存?
- 具有局部静态变量的单例构造函数
- 删除父类时,方法局部静态变量会发生什么情况
- lambda 如何捕获局部静态变量?
- 局部静态变量的初始化多个功能调用
- 如果仅在 lambda 中使用,则不会在发布版本中初始化局部静态变量
- 有没有更好的方法可以使此代码线程安全?线程局部静态似乎是一个生硬的工具
- 使用局部静态std :: ARNE_FLAG和局部静态指针对静态变量的线程安全初始化
- memcpy局部静态变量时出现分段错误
- 使用局部静态变量调用函数
- 在泛型lambda表达式的所有实例化之间共享的局部静态变量
- 要创建持久变量,最好是使用局部静态变量还是全局变量
- 如何在 C++03 中实现线程安全的局部静态变量
- 将成员函数绑定到局部静态变量
- 可能需要引用不同变量的局部静态常量变量
- 如何利用dwarf确定非成员函数中的局部静态变量
- 在VS2015中c++局部静态变量初始化线程安全吗?
- 不持有锁的局部静态初始化避免了c++ 11中可能出现的死锁