c++ - 在非成员函数中声明全局变量

标签 c++

我可以在非成员函数中声明一个全局变量吗?

或者换句话说,非成员函数的静态等价物?

而且我希望变量不是 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/

相关文章:

c++ - 无法为处于不同线程 (Qt) 中的父对象创建子对象

c++ - 在不带/proc/self/exe的Linux上的C/C++中,运行时可执行文件的大小?

c++ - 将 qi::hex 解析器限制为 2 个字符

c++ - C++ 应用程序中的 PyQt4 插件

c++ - 我喜欢免费的跨平台网络/线程/xml 静态库吗

c++ - 字符数组到十六进制字符串的转换 - 意外输出

c++ - nm 符号值的偏移量?

c# - 当 UWP 解决方案包含 Windows 运行时组件 (C#) 时 WACK 失败

c++在函数调用参数中使用范围解析运算符

c++ - 无法运行程序 “g++” : Launching failed - Eclipse C++