我可以从外部访问函数内的静态变量吗?

Rob*_*Hsu 10 c c++

C/C++:我可以从外部访问函数内的静态变量吗?例如:

#include <iostream>
using namespace std;

void f()
{
    static int count = 3;
    cout << count << endl;
}

int main(int argc, char** argv)
{
    f::count = 5;   // apparently this is an invalid syntax.
    f();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

ric*_*ici 13

不,你不能,无论是C还是C++.

如果要维护与函数关联的状态,请定义具有适当状态和成员函数的类.(在C++中.你也用C标记了这个问题;同样的技术有效,但你需要自己完成所有的基础工作.)

虽然它们有它们的用途,但大多数时候非常静态的本地人都是个坏主意.它们使你的函数线程不安全,并且它们经常使它成为"一次调用".


Gle*_*aum 7

函数作用域内的变量不能通过名称从外部访问,但可以返回指针或引用