什么装修网站做的好的,高淳 网站建设,网站开发各小组互评表,营销网站做推广公司#x1f4e2;博客主页#xff1a;https://blog.csdn.net/2301_779549673 #x1f4e2;欢迎点赞 #x1f44d; 收藏 ⭐留言 #x1f4dd; 如有错误敬请指正#xff01; #x1f4e2;本文作为 JohnKi 的学习笔记#xff0c;引用了部分大佬的案例 #x1f4e2;未来很长博客主页https://blog.csdn.net/2301_779549673 欢迎点赞 收藏 ⭐留言 如有错误敬请指正 本文作为 JohnKi 的学习笔记引用了部分大佬的案例 未来很长值得我们全力奔赴更美好的生活✨ 文章目录 前言️什么是 namespace️如何定义 namespace❤️定义嵌套融合 ️如何使用 namespace总结 前言 要建造简单的房屋首先要打地基、搭框架。如果一开始没有牢固的结构后面就很难建造窗子、门框、圆屋顶和镶木地板的舞厅等。同样学习计算机语言时应从程序的基本结构开始学起。只有这样,才能一步一步了解其具体细节如循环和对象等。 这篇博客笔者就介绍一下由 C语言 转到 C 时我们第一个会遇到的语句即 using namespace std 并着重介绍一下其中的含义和由来 ️什么是 namespace
Namespace命名空间是在计算机科学中常见的概念用于表示符号的命名范围或作用域。在编程中命名空间通常用于避免命名冲突即当多个库、模块或包中存在相同名称的变量、函数或类时通过将它们放置在不同的命名空间中来区分它们。
我们可以先看一下下面这块C语言的代码
#define _CRT_SECURE_NO_WARNINGS 1
#includestdio.h
#includestdlib.h
int rand 1;int main()
{printf(%d, rand);return 0;
}如果不存在什么命名问题的话这里会出现的结果将是1但是我们实操会发现出现重定义的错误提示
为什么会出现
那是因为在stdlib.h库中也存在rand这个变量名
因此
在当项目量过大项目人数过多时时常会出现一些大佬们命名重复的情况为了避免这个情况于是就在C中引用了namespace用来存放和保证命名库不出错解决命名冲突 ️如何定义 namespace
❤️定义
定义语法
namespace N1
{//支持变量int a 1;//支持函数int fun(){return 1;}//支持结构体struct S{int s;};
}我们通过 namespace 命令空间名 {} 在花括号中填入想要命名的变量就可以了
基本上的类型都是支持的
嵌套
namespace N2
{int a 1;namespace N3{int b 1;}
}不仅如此namespace是支持嵌套使用的就比如这里在N2空间内我们又创建了一个N3的命名空间
融合
同一个工程中允许存在多个相同名称的命名空间编译器最后会把他们合成一个命名空间。
namespace N4
{int a 1;
}
namespace N4
{int b 2;
}融合结果
namespace N4
{int a 1;int b 2;
}️如何使用 namespace
既然已经知道了namespace的定义方法那自然需要知道如何使用了
这里就可以介绍一下using namespace std的具体含义了
这其实就是一个名为std的命名空间的直接使用std可以看为C语法的标准数据命名空间就像C语言中的stdio.h一样在C中常使用的count,cin等都是出自于这个命名库中C标准库中的函数或者对象都是在命名空间std中定义的。
我们使用using namespace std就相当于把C标准库外壳拆除因此就可以使用里面的对象和函数了
这就是方法1直接使用using namespace 命名空间名
#includestdio.h
namespace N
{int a 10;int b 20;
}
using namespace N;
int main()
{printf(%d\n, a); // 正常打印return 0;
}而方法2则是使用using将命名空间中成员引入using 命名空间名 :: 成员名
using N::b;
int main()
{printf(%d\n, b);return 0;
}这样如果仅仅是需要利用命名空间内的指定成员名直接这样引用就行了
方法3就是命名空间名 :: 变量名
这里可以引用一下全局变量和局部变量
比如下面这个例子
#includestdio.h
int a 0;
int main()
{int a 1;printf(%d\n,a);return 0;
}这部分代码没有出错因为在指定作用域内优先局部变量
但如果我们要在这部分域内使用全局变量又该怎么做呢就需要在变量名前加上::就行了
#include iostream
using namespace std;
int a 0;
int main()
{int a 1;printf(访问局部变量(a)%d\n,a);printf(访问全局变量(::a)%d\n,::a);return 0;
}那如果在C中有很多个命名空间呢那就是用方法3命名空间名 :: 变量名了
#include iostream
using namespace std;
int main()
{cout 1 endl;
}这部分代码就可以改成
#include iostream
int main()
{std::cout 1 std::endl;
}总结
using namespace std; 是一个用于C编程的命名空间指令它通常出现在C程序的顶部。它的作用是将标准C库中的所有标识符引入到当前的命名空间中使得你可以直接使用这些标识符而无需在前面添加命名空间限定符 std::。
具体来说当你编写C程序并使用标准C库中的类、函数、对象或其他标识符时通常需要添加 using namespace 命名空间名; 、using 命名空间名 变量名 或使用 命名空间名:: 前缀来限定命名空间。 本篇博文对 C中namespace 做了一个较为详细的介绍不知道对你有没有帮助呢
觉得博主写得还不错的三连支持下吧会继续努力的~