一、命名空间的作用
#include <stdio.h>
#include <stdlib.h>
namespace jpc
{
//一、命名空间的作用
//命名空间内可以定义变量、函数和类型,此外还可以嵌套使用
int rand = 1;
void Func()
{
printf("Func()\n");
}
struct TreeNode
{
struct TreeNode* left;
struct TreeNode* right;
int val;
};
namespace in
{
int i = 0;
}
}
int main()
{
printf("%p\n",rand);
printf("%d\n",jpc::rand); //::为域作用限定符【如果局部域和全局域定义了相同名字的变量,优先选择局部域(除非对变量所属域进行额外限定)(空格 + :: 为全局域限定符)】
//Func();
//jpc::Func();
//struct TreeNode tn;
//struct jpc::TreeNode tn;
//jpc::in::i= 1; //命名空间的嵌套
return 0;
}
二、命名空间的性质
//二、命名空间的性质
//在同一个工程内可以定义多个相同名字的命名空间,编译器会把这些名字相同的命名空间合成一个。
//using namespace jpc;是将命名空间jpc展开(先在全局域里面去找,如果没有还会到展开的jpc域里面去找)
三、命名空间的使用
//三、命名空间的使用
#include <iostream>
//全部展开(一般在日常练习中展开,在项目中不要这样用)
//using namespace std;
//展开常用的
//using std::cout;
//using std::endl;
int main()
{
int i = 1;
//指定命名空间访问
std::cout<< i <<std::endl;
return 0;
}