命题空间的全局变量不能直接拖到Watch窗口查看

来源:互联网 发布:索尼as200 软件 编辑:程序博客网 时间:2024/06/01 09:41
vc6.0调试时namespace中全局变量不能查看
#include<stdio.h>
namespace n1
{
int x;
}

void pp()
{
printf("x is %d\n",n1::x);
}

void main()
{
n1::x=2;
pp();
}

调试时,可以在watch窗口中看见n1::x的值,但如果用using namespace n1;的话,在watch窗口中就不会显示x的值,而是会提示cx0017:error :symbol "x" not found,但如不定义n1,而直接定义全局变量x,则鼠标悬停时和watch窗口都会显示x的值,


使用using namespace n1后,如想在watch窗口中观察x值,应该加::修饰符。
逻辑上这也是合理的,如果不加::修饰符,当再有另外一个名字空间中存在x变量,watch窗口将无法区分。