1樓:匿名使用者
lz的說法有誤。#include只是文字包含,具體一點地說,在一般的實現中,只要是可以正常訪問的文字檔案,無論是什麼副檔名(甚至不含副檔名),前處理器僅僅把文字的內容複製到#include所在行並刪除此行,也就是用文字檔案的內容替換#include所在的這一行而已,而不會在#include進行時因為檔名稱或內容產生錯誤或警告(complain)。
.h作為標頭檔案(header)的字尾名,只是習慣而非規定。對於c++的標準庫,它的前身是帶.
h的,內容上最大的區別是檔名不包含.h的標頭檔案中使用了名稱空間std,以防止名稱空間汙染。此外,一些實現上也有不小的區別,例如標準輸入輸出(包含)使用了類别範本,而早期的庫中可能被簡單地實現為class。
有些模板為主的c++庫例如boost使用.hpp作為標頭檔案字尾,體現“header for c plus plus”,也只是習慣(如果不考慮內容,.hpp照樣也可以作c語言標頭檔案)。
由於典型的語言實現往往合併c和c++,有些編譯器對於c和c++的原始檔都可能編譯(像vc++用的編譯器是microsoft c&c++ compiler),為了區分原始檔是c還是c++的,簡便方法是規定原始檔字尾名(例如.c表示c原始檔,.cpp或.
cxx表示c++原始檔;對於大小寫敏感的檔案系統,有時用.c表示c++原始檔)。這樣對於同一個編譯器命令列就不必指定額外的編譯選項了。
另外,ls designingthe 有誤。
c++標準庫的標頭檔案和c標準庫的標頭檔案沒什麼關係,除了設計目的都是提供字串操作。在c標準庫中版本是。包含了std::
string,是一個class(類别範本std::basic_string的例項),在c語言沒有對應版本。
(除此和 俠盜機密 外,其它的回答都正確。)
====
[原創回答團]
2樓:匿名使用者
不是這樣的,是標準標頭檔案.h一般是老的c的標頭檔案,沒有名稱空間,c++的標準標頭檔案一般沒有h,有名稱空間 std,所以不能說“.h字尾的檔案是c語言的標頭檔案,不是c++的”,一般自己定義的標頭檔案都是以h為字尾的
3樓:匿名使用者
c++ 新增的哭很多都是不帶.h的,但是和c帶.h的是相容的可以呼叫c的h標頭檔案和庫,舉個例子
c++的 #include
c的 #include
這兩個不一樣,但是c++中都可以用
4樓:匿名使用者
這不是強制規定。
c++上也可以用.h。
5樓:俠盜機密
也是啊,不過include時經常省略
6樓:哈欠聊科技
c++標頭檔案也用.h, 當然,也有些庫用hpp作副檔名, 甚至還有不用副檔名的...比如stl庫.
因為編譯的時候,標頭檔案是被#include ,也就是類似於複製內容插入cpp檔案.
所以,標頭檔案任何副檔名都沒關係,你不信可以試試自己用.txt作頭副檔名.
c/c++單元檔案的副檔名倒有一定關係. 有些c++編譯器, 編譯.c就自動按c方式編譯,編譯.cpp就按c++方式編譯.
c語言中有#include
7樓:匿名使用者
c語言中bai是有#include 的。 這是
duc語言標準的包含庫zhi標頭檔案stdlib.h的語句dao。在**中引用
回此句後,就
答可以使用stdlib.h中的函式,而不會出現未宣告的警告。
stdlib.h是c語言庫標頭檔案之一,包含了以下函式:
1 字串轉換為數字的函式,包括atoi, atof, strtol等。
2 隨機數函式,包括srand, rand等。
3 記憶體分配釋放函式,如malloc,calloc,realloc,free等。
4 程式執行控制函式,如exit, abort等。
5 系統訪問相關函式,如printenv, setenv,system等。
6 常用演算法函式,如qsort, bsearch, abs,div等。
在c++中也可以使用#include ,因為c++相容了c語言中的操作。不過一般更推薦使用c++風格的標頭檔案,即#include 。cstdlib實現了stdlib.
h中的所有功能,不過是按照c++的方式寫的,所以與c++語言可以更好的配合。
8樓:
stdlib.h
是一些標準標頭檔案申明,由於c++相容c語言,所以它也是一個合法的c++標頭檔案。實際上,回c++可以答使用所有c語言的標頭檔案,包括stdio.h。
在c++引入名字空間後,建議使用不帶副檔名的標頭檔案,如:
include
即在傳統c標頭檔案前加一個字元c,去掉.h,同c++標頭檔案一致。如:
#include
#include
using namespace std;
9樓:匿名使用者
那些都是函式檔案~有的是隨機數檔案,沒什麼不同吧好象~
用random時前面加下就ok拉~
c++標頭檔案名 .h 結尾又是什麼意思?
10樓:匿名使用者
標頭檔案就是利用裡面寫好的程式或定義好的函式,所以要用到標頭檔案,c語言的標頭檔案字尾是.h,用來區分c語言用的標頭檔案。c++用的標頭檔案沒有字尾這樣可以一目瞭然!
11樓:匿名使用者
c++檔名一般是指字尾為cpp的檔案,以.h結尾的是標頭檔案
12樓:匿名使用者
我艹,你隨便找本c++的書,都有的
c++標頭檔案加h和不加h有什麼區別??
13樓:影者東昇
iostream是c++的標頭檔案,iostream.h是c的標頭檔案,即標準的c++標頭檔案沒有.h副檔名,將以前的c的標頭檔案轉化為c++的標頭檔案後,有時加上c的字首表示來自於c,例如cmath就是由math.
h變來的。 iostream.h裡面定義的所有類以及物件都是在全域性空間裡,所以你可以直接用cout 但在iostream裡面,它所定義的東西都在名字空間std裡面,所以你必須加上 using namespace std才能使用cout 一般一個c++的老的帶“.
h”副檔名的庫檔案,比如iostream.h,在新標準後的標準庫中都有一個不帶“.h”副檔名的相對應,區別除了後者的好多改進之外,還有一點就是後者的東東都塞進了“std”名字空間中。
但唯獨string特別。 問題在於c++要相容c的標準庫,而c的標準庫裡碰巧也已經有一個名字叫做“string.h”的標頭檔案,包含一些常用的c字串處理函式,比如strcmp。
這個標頭檔案跟c++的string類半點關係也沒有,所以並非的“升級版本”,他們是毫無關係的兩個標頭檔案。
如果是自己寫的標頭檔案,是必須加.h的。
14樓:匿名使用者
有木有h都無所謂,只要include這個檔名,確實存在就行。
比如經常寫的#include ,那麼系統的包含路徑下,是確實有iostream這個檔案存在的。
.h只是一個慣例,提示這是個標頭檔案,並非強制。
請c++高手們幫忙解答:關於使用string時可不可以用標頭檔案#include
15樓:匿名使用者
#include 和 #include 包含的東西有哪些不同?
之前在寫c++程式的時候只知道使用 #include 的時候,使用函式前要用 using namespace std; 匯入名稱空間,而 #include 則不用,這個得看c++標準化過程為c++開發者做了哪些有意義的工作。
c++標準化過程中,其中一個環節,解決了以下問題:
(1)c++增加了名稱空間概念,藉以將原來宣告在全域性空間下的識別符號宣告在了namespace std下。
(2)統一c++各種字尾名,如.h、.hpp、.
hxx等。標準化之前的標頭檔案就是帶字尾名的檔案,標準化後的標頭檔案就是不帶字尾名的檔案。c++ 98 規定使用者應使用新版標頭檔案,對舊版本標頭檔案不在進行強制規範,但大多數編譯器廠商依然提供舊版本標頭檔案,以求向下相容。
也就是說帶 .h 的標頭檔案是舊標準的,如果想用新的標準的標頭檔案就不要帶 .h。
另外,為了和c語言相容,c++標準化過程中,原有c語言標頭檔案標準化後,標頭檔案名前帶個c字母,如cstdio、cstring、ctime、ctype等等。這些標頭檔案都可以在 c:\program files\microsoft visual studio 10.
0\vc\include 這個目錄下找到(以vc2010為例)。也就是說,我們如果要用c++標準化了的c語言標頭檔案,就得作如下的轉換
#include --> #include
#include --> #include
#include --> #include
還要提及的一點是,我在看c++標準庫的時候,看到一個特殊情況 和 ,這兩個標頭檔案是完全不同的,因為我發現 標頭檔案件包含了 ;而 包含
這裡摘錄 memory.h 中的一段**: (以上內容來自:
酷_酷_幣】為您服務...
16樓:匿名使用者
如果要包含非標準庫標頭檔案,語法應該是 #include "***xx.h"。iostream是標準輸出輸入標頭檔案,用#include即可。
你這裡用尖括號包含字尾為.h的標頭檔案,當然會報錯。(關於標頭檔案的介紹,請檢視你的學習資料)
17樓:匿名使用者
如果你編譯器版本比較高的話,比如vs2008 那麼是不會存在string.h這個標頭檔案的 已經統一為string+namespace的形式了
C語言源程式檔案的字尾是什麼,C語言源程式檔名的字尾是什麼?
位專哀羽彤 c語言源程式檔案的字尾是 c 經過編譯後生成檔案的字尾是 exe 經過連結後生成檔案的字尾 obj 墨掣賞曉靈 在vc6.0中的源程式檔名的字尾是.cpp 因為這個是本來是c 的字尾,但是c 向下相容,是更高階的c。如果在tc中的檔案字尾就是.c tc是比較早期的c語言開發工具,現在用得...
c語言怎麼判斷檔案的行尾,C語言怎麼判斷檔案的行尾??
有特殊符號的 一般是26 也就是ctrl z 你用dubug看一個小的檔案就可以知道了 好像有函式可以知道是否檔案尾,eof windows下行結束是 r n linux下,則是 n fgets 函式,讀出來,如果有行尾,最後一個是 n 之後是結束符 gets 從鍵盤讀取一行會把換行符丟棄,但是fg...
c語言巨集定義及多個檔案的問題,c語言多個檔案都用到同一個巨集和結構,那麼巨集定義和結構定義應該放在哪個檔案合適呢?
小白範 c語言編譯器gcc編譯過程 先分檔案編譯,每個檔案編譯成一個目標程式。最後將目標程式 連結 在一起,形成可執行程式。注意 只編譯.c檔案,不編譯.h標頭檔案。在編譯ma.c時,先將標頭檔案的內容拷貝過來,變成 ifndef type define type 2 endif void p vo...