//第二十二章 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; }*/