网上有关“C语言中的#include <stdio.h> 跟C++中using namespace std;有什么区别”话题很是火热,小编也是针对C语言中的#include <stdio.h> 跟C++中using namespace std;有什么区别寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
using namespace std是C++的一个标准命名空间
可以自己定义命名空间,如:
using namespace aa;
C++引入命名空间主要是用来解决不同文件中全局变量的重名问题
比如一般大型的项目开发是由多个人一起完成的,每个人编写自己的一部分
最后再由一人把这些别人编写好的程序引用过来使用
例:
A的文件中定义了int k;B的文件中也定义了int k;而C要把A和B的文件同时引用过
来使用,他在使用全局变量k时就会发生错误。系统无法辨别他要使用的是A中的还是
B中的。
如果A和B在编写过程中都定义了自己的命名空间并把int k放在其中
A:
namespace A
{
int k;
}
B:
namespace B
{
int k;
}
这时C引用时就要加上空间名,A::k B::k就解决了全局变量的重名冲突的问题
而C语言是没有命名空间的
C++的using namespace std表示什么意思?为什么C语言没有这句话
using namespace std指调用命名空间std内定义的所有标识符。
使用“using namespace std”后,命名空间中的标识符就如同全局变量一样。
由于标准库非常大,程序员可能会选择类的名称或函数名称,就像它是标准库中的名称一样。因此,为了避免这种情况导致的名称冲突,标准库中的所有内容都放置在命名空间Std中。
但这将带来新的问题:无数的原始C语言代码依赖于伪标准库中的功能,这些功能已经使用多年,都在全局空间中。
所以就有了诸如<iostream.h>和<iostream>这样的head文件,一种是与以前的C语言代码兼容,另一种是支持新标准。
扩展资料:
C语言中调用using namespace std的意义:
1、在同一命名空间、相同作用域中,任何名字须具有唯一性。
2、每个结构和联合内部都有自己的命名空间(独立于其他空间)。
3、结构标签、联合标签、枚举标签共用一个命名空间(独立于其他空间)。
4、goto使用的标签名,只要在同一函数内部唯一(独立于其他空间)。
5、所有其他情况共用一个命名空间,如变量、所有枚举常量、typedef定义的别名等(独立于其他空间)。
百度百科-namespace
是命名空间的意思,这样编译器在编译的时候相当于每个变量都是 命名空间+变量名,这样就可以在不同命名空间里,起同样的变量名,防止变量名用尽或者冲突。C语言没有命名空间,C和C++其实是两门语言,尽量按照他们是两门不同语言的思路来学习比较好。
关于“C语言中的#include <stdio.h> 跟C++中using namespace std;有什么区别”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[晨露珠]投稿,不代表拾光号立场,如若转载,请注明出处:https://7k54.com/shiga/12523.html
评论列表(3条)
我是拾光号的签约作者“晨露珠”
本文概览:网上有关“C语言中的#include <stdio.h> 跟C++中using namespace std;有什么区别”话题很是火热,小编也是针对C语言中的#inc...
文章不错《C语言中的#include <stdio.h> 跟C++中using namespace std;有什么区别》内容很有帮助