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

2024-11-27 01:55:48
推荐回答(1个)
回答1:

众所周知,C++是在C语言基础上发展的一门编程语言,而C++ 99%的兼容C,也就是说,一般你写的一个C程序,也属于一个C++程序。C++为了兼容C,继承了原来C语言中的库。如, 你可以直接在C++程序中使用。但是呢,C++也对原来的C库做了一些自己的规范,也就是说使用了双重标准,你可以使用原来的C库,但C++推荐使用C++规范下的C库。
1、由于引入了名称空间这个东西。标准库都在std这个名称空间中。也就是说从C中继承的库都放在了std名称空间中。你不能直接使用额,需要加名称空间限定。

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

如果你使用的是C++标准下的C库,比如 #include。需要加名称空间限定 std::sqrt() 。当然如果你使用了using namespace std;则可以直接使用sqrt,而无需加 std::限定