#include <iostream> 和 #include"iostream" 的区别 #include<iostream>和#include<iostream.h>的区别

#include<*.h>  直接从编译器自带的函数库中寻找文件,编译器从标准库路径开始搜索*.h

#include"*.h"    是先从自定义的文件中找 ,如果找不到在从函数库中寻找文件,编译器从用户的工作路径开始搜索 *.h

采用"< >"方式进行包含的头文件表示让编译器在编译器的预设标准路径下去搜索相应的头文件,如果找不到则报错。

注意:如果是标准库头文件,那么既可以采用 <> 的方式,又可以采用" "的方式,而用户自定义(自己写的)的头文件只能采用 " " 的方式。


例如,如下这种方式是正确的:

#include <iostream>  效率较高(编译器自带的函数库中寻找文件)

#include "iostream"    效率较低(从自定义的文件中找 ,如果找不到在从函数库中寻找文件)

如下这种方式是不正确的:

#include <robotkang.h>  robotkang.h是我们自己创建的头文件


#include<iostream>和#include<iostream.h>的区别

区别在于:如果用了isotream则一定要引入命名空间,即”using namespace std;如果用了iostream.h,则不能引入命名空间,否则会引起编译错误,提示找不到命名空间. 

从功能性的角度来讲,iostream包含了一系列模板化的I/O类,相反地 iostream.h只仅仅是支持字符流。另外,输入输出流的C++标准规范接口在一些微妙的细节上都已改进,因此,iostream和iostream.h在接口和执行上都是不同的。最后,iostream的各组成都是以STL的形式声明的,然而iostream.h的各组成都是声明成全局型的。 
严格来说,不带h的用法是纯C++的标准用法,主要是配合STL库使用的。如果你的程序要使用C库,那么就要带.h。因此第一种和第二种写法,最大的区别在于你使用C模式还是纯C++模式。还有比如string.h是旧的C头文件,对应的是基于char*的字符串处理函数;string是包装了std的C++头文件,对应的是新的strng类;cstring是对应旧的C头文件的std版本。

----------------------------------------------------------------------------

网址:教你高效且优雅的访问国外的网站(点击此处)


---------------------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/robotkang/article/details/80783948