第二十二章 6未命名的命名空间 简单

//第二十二章 6未命名的命名空间
/*#include <iostream>
using namespace std;
namespace {
   int x=2;
}
namespace {
   int y=3;
}
int main()
{
    cout<<"x:"<<x<<" y:"<<y<<endl;	
	//输出的结果就是未命名空间的x和y的值,其实我们也可以把它们看帮是全局的变量
    return 0;
}*/

// 1 未命名命名空间与全局变量的区别
// 2 未命名命名空间与static的区别
// 3 未命名命名空间 static 与 extern的区别
   //与static相反的是extern,extern用来声明一个在其它文件中定义的变量,函数或者对像如
/*
#include <iostream>
using namespace std;
extern int x;
//注意: extern只是起说明的作用,extern符号通常表示所参照的变量来自另一个文件,编译器根据它提供的类型和名字从程序的其他编译文件中进行查找

//static与extern的另外一个区别是: static是内部链接,extern是外部链接,比如说static定义的变量只能在定义此变量的文件中使用,而extern则将它所声明的变量链接到其他文件,以便宜于编译器查找到此变量的定义部分


int main()
{
   cout<<x<<endl;
   return 0;
}*/

  

原文地址:https://www.cnblogs.com/xiangxiaodong/p/2710012.html