赞
踩
在C语言中我们常常会遇到如下问题
#include <stdio.h>
#include <stdlib.h>
int rand = 1;
int main()
{
printf("%d\n", rand);
return 0;
}
也就是我们常说的命名冲突,其中最典型的有两种
1.与库里面的函数名冲突(如上图所示)
2.项目中与他人命名冲突
namespace JS
{
int rand = 1;
}
int main()
{
printf("%d\n", js::rand);
return 0;
}
相当于创造了一个叫JS的作用域,它不受全局域和局部域的影响
用代码展示如下
int a = 1; namespace JS { int a = 2; } int main() { int a = 3; printf("%d\n", a); //表示搜索局部域 printf("%d\n", ::a); //::前面为空代表搜索全局域 printf("%d\n", JS::a);//表示搜索命名空间域 return 0; }
效果如上
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。