c++ - 在 C++ 中,如果两个不同的函数声明同一个静态变量会怎样?

标签 c++ function static static-variables

void foo() {
    static int x;
}

void bar() {
    static int x;
}

int main() {
    foo();
    bar();
}

最佳答案

他们每个人都只看到自己的。无法从 scope 之外“看到”变量它在中声明。

另一方面,如果您这样做:

static int x;

void foo() {
    static int x;
}

int main() {
    foo();
}

然后 foo() 只看到它的本地 x;全局 x 已被它“隐藏”。但是对一个的更改不会影响另一个的值。

关于c++ - 在 C++ 中,如果两个不同的函数声明同一个静态变量会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108147/

相关文章:

c++ - 指向引用的指针是否指向引用的地址或值?

c++ - ffmpeg 仅发布播放列表,但不发布 HLS 片段

c++ - 为什么这不会将运算符重载标记为内联导致重复定义错误?

调用函数时,Python 模块 audiolab 返回错误

c++ - 如何初始化对类内部变量的静态引用,以用于嵌套类

php - 为什么无法在 PHP 中返回 self ?

c++ - 实现 unique_ptr : Deleting non-allocated objects

r - 在 R 中使用 fitdist 时出错 - 必须定义 dllogis 函数

java - 从 Main 获取随机函数

swift :设置@IBOutlet静态