今天看vc++的內容,我使用的是vs2008版,編寫第乙個程式的時候在標頭檔案這裡遇到了問題,編譯時說無法開啟檔案,然後上網搜了一下,注意這裡!!!!
#include是在舊的標準c++中使用。在新標準中,用#include。iostream 的意思是輸入輸出流。#include是標準的c++標頭檔案,任何符合標準的c++開發環境都有這個標頭檔案。
還要注意的是:在vs程式設計時要新增:
using namespace std;
其原因是:字尾為.h的標頭檔案c++標準已經明確提出不支援了,早些的實現將標準庫功能定義在全域性空間裡,宣告在帶.h字尾的標頭檔案裡,c++標準為了和c區別開,也為了正確使用命名空間,規定標頭檔案不使用字尾.h。因此,當使用時,相當於在c中呼叫庫函式,使用的是全域性命名空間,也就是早期的c++實現;當使用的時候,該標頭檔案沒有定義全域性命名空間,必須使用namespace std;這樣才能正確使用cout。(還不明白全域性命名空間是什麼)
命名空間:
namespace既「命名空間」,也稱「命名空間」 vs.net中的各種語言使用的一種**組織的形式 通過命名空間來分類,區別不同的**功能 同時也是vs.net中所有類的完全名稱的一部分。
如同名字一樣的意思,namespace:名字空間,之所以出來這樣乙個東西,是因為人類可用的單詞數太少,並且不同的人寫的程式不可能所有的
變數都沒有重名現象,對於庫來說,這個問題尤其嚴重,如果兩個人寫的庫檔案中出現同名的變數或
函式(不可避免),使用起來就有問題了,為了解決這個問題,引入了名字空間這個概念,通過使用using namespace ***;你所使用的庫函式或變數就是在該名字空間中定義的.這樣一來就不會引起不必要的衝突了.
所謂namespace,是指
識別符號的各種可見範圍。
c++標準程式庫中的所有識別符號都被定義於乙個名為std的namespace中。
一 :<
iostream
>和<
iostream.h
>格式不一樣,前者沒有字尾,實際上,在你的
編譯器include資料夾裡面可以看到,二者是兩個檔案,開啟檔案就會發現,裡面的**是不一樣的。字尾為.h的
標頭檔案c++標準已經明確提出不支援了,早些的實現將標準庫功能定義在全域性空間裡,宣告在帶.h字尾的標頭檔案裡,c++標準為了和c區別開,也為了正確使用命名空間,規定標頭檔案不使用字尾.h。 因此,當使用時,相當於在c中呼叫庫函式,使用的是全域性命名空間,也就是早期的c++實現;當使用的時候,該標頭檔案沒有定義全域性命名空間,必須使用namespace std;這樣才能正確使用cout。
二: 所謂namespace,是指識別符號的各種可見範圍。 c++標準程式庫中的所有識別符號都被定義於乙個名為std的namespace中。 由於namespace的概念,使用c++標準程式庫的任何識別符號時,可以有三種選擇:
1、直接指定識別符號。例如std::ostream而不是ostream。完整
語句如下: std::cout << std::hex << 3.4 << std::endl;
2、使用using
關鍵字。 using std::cout; using std::endl; using std::cin; 以上程式可以寫成 cout << std::hex << 3.4 << endl;
3、最方便的就是使用
using namespace std
; 例如: #include#include #include using namespace std;這樣命名空間std內定義的所有識別符號都有效(**)。就好像它們被宣告為全域性變數一樣。那麼以上語句可以如下寫: cout <
關於VC 的標頭檔案
以下出自 effective c 懾於被激怒的程式設計師會產生的破壞力,標準 委 員會決定為包裝了std的那部分標準庫構件建立新的頭檔名。生成新標頭檔案的方法僅僅是將現有c 頭檔名中的 h 去掉,方法本身不重要,正如最後產生的結果不一致也並不重要一樣。所以變成了,變成了,等等。對於c頭 檔案,採用同...
VC環境下標頭檔案包含
標頭檔案包含 include 是c c 中最基本的語法了,不過理解的不深入的話,有時候還是會帶來很大的困擾,本文總結一下vc開發環境 以vc2008為例 下包含標頭檔案的用法。一 include 與 include 的區別 網上很流行的一種說法是 前者包含標準標頭檔案,後者包含自己寫的標頭檔案。我只...
為VC系統標頭檔案生成tags
echo off rem 用法 把些檔案命名為vctag.bat,放在系統目錄下,在命令列中執行vctag filename rem 備註 此檔案依賴於ctags工具和vc編譯器。ctags官網方面,需要手動指定編譯器環境配置檔案,即下面的vcvarsall.bat檔案 rem 如果當前目錄已經存在...