溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-08-02 22:49:46 來源:網(wǎng)絡 閱讀:347 作者:博文視點 欄目:系統(tǒng)運維

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

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


[cpp]view plaincopy
  1. int main()

  2. {

  3. return 0;

  4. }



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

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

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

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


[cpp]view plaincopy
  1. {

  2. return 0;

  3. }



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





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

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

重要概念:類型

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

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

、運行程序

編譯、運行程序

編寫好程序后,我們就需要編譯它。如何編譯程序依賴于你使用的操作系統(tǒng)和編譯器。你所使用的特定編譯器的相關使用細節(jié),請查閱參考手冊或詢問經(jīng)驗豐富的同事。

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

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

程序源文件命名約定

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

從命令行運行編譯器

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

$ CC prog1.cc

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

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

$ prog1

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

$ .\prog1

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

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

$ a.out

如果需要指定文件位置,需要用一個“.”后跟一個斜線來指出可執(zhí)行文件位于當前目錄中。

$ ./a.out

訪問main的返回值的方法依賴于系統(tǒng)。在UNIX和Windows系統(tǒng)中,執(zhí)行完一個程序后,都可以通過echo命令獲得其返回值。

在UNIX系統(tǒng)中,通過如下命令獲得狀態(tài)

$ echo $?

在Windows系統(tǒng)中查看狀態(tài)可鍵入

$ echo %ERRORLEVEL%

運行GNU或微軟編譯器

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

$g++ -o prog1 prog1.cc

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

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

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

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

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

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

練習

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

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

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

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


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

王剛 楊巨峰 譯

電子工業(yè)出版社出版


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI