C++中#include包含头文件带 h 和不带 h 的区别
1个回答
展开全部
众所周知,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、由于引入了名称空间这个东西。标准库都在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::限定
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询