C++中#include包含头文件带 h 和不带 h 的区别

 我来答
坤坤吃饭第一名
2017-04-18 · TA获得超过667个赞
知道小有建树答主
回答量:391
采纳率:66%
帮助的人:205万
展开全部
众所周知,C++是在C语言基础上发展的一门编程语言,而C++ 99%的兼容C,也就是说,一般你写的一个C程序,也属于一个C++程序。C++为了兼容C,继承了原来C语言中的库。如<math.h>, 你可以直接在C++程序中使用。但是呢,C++也对原来的C库做了一些自己的规范,也就是说使用了双重标准,你可以使用原来的C库,但C++推荐使用C++规范下的C库。
1、由于引入了名称空间这个东西。标准库都在std这个名称空间中。也就是说从C中继承的库都放在了std名称空间中。你不能直接使用额,需要加名称空间限定。

2、 并且规定:标准库的头文件不再使用.h后缀,而采用无后缀。如果某个库是从C中继承过来的,则去掉后缀.h,并在前面加上c 比如<math.h> 改为<cmath>。如果是C++特有的库,则不添加c。如<vector> <string>
如果你使用的是老式的,C标准下的库,比如#include<math.h>,则可以直接使用math库中的函数。因为老式的C库不存在名称空间这个技术。

如果你使用的是C++标准下的C库,比如 #include<cmath>。需要加名称空间限定 std::sqrt() 。当然如果你使用了using namespace std;则可以直接使用sqrt,而无需加 std::限定
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式