#include 和 #include"iostream" 的區別

 

#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版本。

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

網址:教你高效且優雅的訪問國外的網站(點擊此處)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章