命名空间内全局变量的外部局部变量
extern local variable for global variable inside namespace
下面的代码可以正常工作:
file1.cpp
//global variable
int g_myvar1 = 5;
file2.cpp
int myfunc()
{
extern int g_myvar1;
g_myvar1++
}
如果file1.cpp如下所示,我怎么做file2.cpp呢?
file1.cpp
namespace myns
{
//global variable
int g_myvar1 = 5;
}
NOTE1,下面给出了GCC 4.7的编译错误"invalid use of qualified-name"。我试过"使用命名空间",也没有运气。
int myfunc()
{
extern int myns::g_myvar1;
g_myvar1++
}
注释2,下面的工作,但我正在寻找仅本地变量定义。
namespace myns
{
//global variable
extern int g_myvar1;
}
int myfunc()
{
myns::g_myvar1++
}
使用using
:
void f()
{
using myns::g_myvar1;
++g_myvar1;
}
您已经在命名空间myns
中声明了.h
文件中的变量(使用extern
关键字),并且在.cpp
文件中定义了它们。在你想使用变量的地方包括头文件
将extern
声明的命名空间放在头文件中,并将该头文件包含在需要该变量的所有源文件中。
相关文章:
- 使用的未初始化局部变量'Quick'
- 修复未初始化的局部变量错误
- 局部变量保留函数中的值
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 将引用分配给局部变量,如果局部变量超出范围,它会超出范围吗?
- Gnuplot_i.hpp C++接口绘制局部变量而不是文件
- 访问 PlatformIO 中的外部环境变量
- 如何在函数外部访问函数中局部变量的值?
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- C++中静态方法的局部变量范围
- 未初始化的局部变量错误甚至认为我初始化了它(C++)
- 离开范围后如何保护局部变量的值?
- 局部变量名称冲突
- C++ lambda:如何'freeze'局部变量的值?
- 我应该使我的局部变量常量还是可移动的
- 获取具有静态局部变量的绑定/推断捕获 lambda 的函数指针
- 这段代码如何访问C++外部的局部变量
- 在c++中是否有办法访问外部作用域中的局部变量?
- visual是在c++中访问不从函数外部访问的volatile局部变量的可观察行为
- 命名空间内全局变量的外部局部变量