聽說h字尾的檔案是c語言的標頭檔案,不是c 的。c 的

2021-08-14 10:51:46 字數 4930 閱讀 6515

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 檔案嗎?它與c++的有什麼不同?

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語言檔案操作

先定義乙個檔案指標 file fp 然後給它賦值 fp fopen 要訪問的檔名,r 然後就可以從檔案中讀取資料了。其中檔名要以字串的形式出現,比如我要開啟c盤根目錄下的,就要寫成。fp fopen c 路徑中的所有的 都要用轉義字元 替換掉,否則的話c的編譯器會把 後面的乙個字元當成轉義字元的引數...

c語言寫標頭檔案定義巨集的問題,C語言寫標頭檔案定義巨集的問題

ifndef a h define a h endif 就是如果沒有定義a h那麼就定義a h,並執行.這樣就避免了重複include的問題。標頭檔案叫file 那麼一般 ifndef file h 這是c的風格,也可以取一個唯一的其他識別符號 預編譯 內的防止重複編譯就是這樣做的,比如 a.cpp...

stp是什麼檔案的字尾名,各種檔案字尾名是什麼

下面bai先對stp檔案進行介紹,再說明 du下開啟該文zhi 件的軟體dao方式 一 stp格式版檔案介紹 1 stp檔案是權cad繪圖軟體的3d圖形檔案的格式 副檔名 其中包含三維物件的資料,提供對產品模型資料交換的支援。2 stp檔案是基於ascii格式符合step應用協議iso 10303 ...