我可以在非成员函数中声明一个全局变量吗?
或者换句话说,非成员函数的静态等价物?
而且我希望变量不是 const - 例如可修改...
最佳答案
您可以在函数内声明一个全局变量:
void f() {
extern int i;
}
但如果您想使用它,您还需要在周围的命名空间中定义它。
作为全局定义,定义不必是相同的翻译单元,但要遵守单一定义规则。
如果如评论中所述,您实际上想要一个持久局部变量,并在第一次调用函数时初始化,那么这正是局部静态变量的行为方式:
void f() {
static int i = whatever(); // initialised the first time
i = something_else(); // the new value is preserved for next time
}
关于c++ - 在非成员函数中声明全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23655121/