程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 編寫一個簡單的C++程序

編寫一個簡單的C++程序

編輯:關於C語言

編寫一個簡單的C++程序

每個C++程序都包含一個或多個函數function),其中一個必須命名為main。操作系統通過調用main來運行C++程序。下面是一個非常簡單的main函數,它什麼也不干,只是返回給操作系統一個值:


[cpp]view plaincopy
  1. int main()

  2. {

  3. return 0;

  4. }



一個函數的定義包含四部分:返回類型return type)、函數名function name)、一個括號包圍的形參列表parameterlist,允許為空)以及函數體function body)。雖然main函數在某種程度上比較特殊,但其定義與其他函數是一樣的。

在本例中,main的形參列表是空的()中什麼也沒有)。6.2.5節第218頁)將會討論main的其他形參類型。

main函數的返回類型必須為int,即整數類型。int類型是一種內置類型built-in type),即語言自身定義的類型。

函數定義的最後一部分是函數體,它是一個以左花括號curly brace)開始,以右花括號結束的語句塊block of statements):


[cpp]view plaincopy
  1. {

  2. return 0;

  3. }



這個語句塊中唯一的一條語句是return,它結束函數的執行。在本例中,return還會向調用者返回一個值。當return語句包括一個值時,此返回值的類型必須與函數的返回類型相容。在本例中,main的返回類型是int,而返回值0的確是一個int類型的值。





請注意,return語句末尾的分號。在C++中,大多數C++語句以分號表示結束。它們很容易被忽略,但如果忘記了寫分號,就會導致莫名其妙的編譯錯誤。

在大多數系統中,main的返回值被用來指示狀態。返回值0表明成功,非0的返回值的含義由系統定義,通常用來指出錯誤類型。

重要概念:類型

類型是程序設計最基本的概念之一,在本書中我們會反復遇到它。一種類型不僅定義了數據元素的內容,還定義了這類數據上可以進行的運算。

程序所處理的數據都保存在變量中,而每個變量都有自己的類型。如果一個名為v的變量的類型為T,我們通常說“v具有類型T”,或等價的,“v是一個T類型變量”。

、運行程序

編譯、運行程序

編寫好程序後,我們就需要編譯它。如何編譯程序依賴於你使用的操作系統和編譯器。你所使用的特定編譯器的相關使用細節,請查閱參考手冊或詢問經驗豐富的同事。

很多PC機上的編譯器都具備集成開發環境Integrated Developed Environment,IDE),將編譯器與其他程序創建和分析工具包裝在一起。在開發大型程序時,這類集成環境可能是非常有用的工具,但需要一些時間來學習如何高效地使用它們。學習如何使用這類開發環境已經超出了本書的范圍。

大部分編譯器,包括集成IDE的編譯器,都會提供一個命令行界面。除非你已經了解IDE,否則你會覺得借助命令行界面開始學習C++還是很容易的。這樣學習方式的好處是,可以先將精力集中於C++語言本身而不是一些開發工具),而且,一旦你掌握了語言,IDE通常是很容易學習的。

程序源文件命名約定

無論你使用命令行界面或者IDE,大多數編譯器都要求程序源碼存儲在一個或多個文件中。程序文件通常被稱為源文件source file)。在大多數系統中,源文件的名字以一個後綴為結尾,後綴是由一個句點後接一個或多個字符組成的。後綴告訴系統這個文件是一個C++程序。不同編譯器使用不同的後綴命名約定,最常見的包括.cc、.cxx、.cpp、.cp及.C。

從命令行運行編譯器

如果我們正在使用命令行界面,那麼通常是在一個控制台窗口內例如UNIX系統中的外殼程序窗口或者Windows系統中的命令提示符窗口)編譯程序。假定我們的main程序保存在文件prog1.cc中,可以用如下命令來編譯它

$ CC prog1.cc

其中,CC是編譯器程序的名字,$是系統提示符。編譯器生成一個可執行文件。Windows系統會將這個可執行文件命名為prog1.exe。UNIX系統中的編譯器通常將可執行文件命名為a.out。

為了在Windows系統中運行一個可執行文件,我們需要提供可執行文件的文件名,可以忽略其擴展名.exe:

$ prog1

在一些系統中,即使文件就在當前目錄或文件夾中。你也必須顯式指出文件的位置。在此情況下,我們可以鍵入

$ .\prog1

“.”後跟一個反斜線指出該文件在當前目錄中。

為了在UNIX系統中運行一個可執行文件,我們需要使用全文件名,包括文件擴展名:

$ a.out

如果需要指定文件位置,需要用一個“.”後跟一個斜線來指出可執行文件位於當前目錄中。

$ ./a.out

訪問main的返回值的方法依賴於系統。在UNIX和Windows系統中,執行完一個程序後,都可以通過echo命令獲得其返回值。

在UNIX系統中,通過如下命令獲得狀態

$ echo $?

在Windows系統中查看狀態可鍵入

$ echo %ERRORLEVEL%

運行GNU或微軟編譯器

在不同操作和編譯器系統中,運行C++編譯器的命令也各不相同。最常用的編譯器是GNU編譯器和微軟Visual Studio編譯器。默認情況下,運行GNU編譯器的命令是g++:

$g++ -o prog1 prog1.cc

此處,$是系統提示符。-o prog1是編譯器參數,指定了可執行文件的文件名。在不同的操作系統中,此命令生成一個名為prog1或prog1.exe的可執行文件。在UNIX系統中,可執行文件沒有後綴;在Windows系統中,後綴為.exe。如果省略了-o prog1參數,在UNIX系統中編譯器會生成一個名為a.out的可執行文件,在Windows系統中則會生成一個名為a.exe的可執行文件注意:根據使用的GNU編譯器的版本,你可能需要指定-std=c++0x參數來打開對C++11的支持)。

運行微軟Visual Studio 2010編譯器的命令為cl:

C:\Users\me\Programs>cl /EHsc prog1.cpp

此處,C:\Users\me\Programs>是系統提示符,\Users\me\Programs是當前目錄名即當前文件夾)。命令cl調用編譯器,/EHsc是編譯器選項,用來打開標准異常處理。微軟編譯器會自動生成一個可執行文件,其名字與第一個源文件名對應。可執行文件的文件名與源文件名相同,後綴為.exe。在此例中,可執行文件的文件名為prog1.exe。

編譯器通常都包含一些選項,能對有問題的程序結構發出警告。打開這些選項通常是一個好習慣。我們習慣在GNU編譯器中使用-Wall選項,在微軟編譯器中則使用/W4。

更詳細的信息請查閱你使用的編譯器的參考手冊。

練習

練習1:查閱你使用的編譯器的文檔,確定它所使用的文件命名約定。編譯並運行第2頁的main程序。

練習2:改寫程序,讓它返回-1。返回值-1通常被當作程序錯誤的標識。重新編譯並運行你的程序,觀察你的系統如何處理main返回的錯誤標識。

Center

本文節選自《C++ Primer中文版第5版)》


美】Stanley B.Lippman( 斯坦利 李普曼) Josee Lajoie(約瑟 拉喬伊 ) Barbara E. Moo (芭芭拉 默) 著

王剛 楊巨峰 譯

電子工業出版社出版


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved