国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C++啟蒙教程之教你編寫簡單的C++程序

2019-11-17 05:45:26
字體:
供稿:網(wǎng)友

  每個C++程序都包含一個或多個函數(shù)(function),其中的一個函數(shù)的名稱必須是main。一個函數(shù)由一系列執(zhí)行函數(shù)功能的語句(statement)組成。操作系統(tǒng)通過調(diào)用main函數(shù)來執(zhí)行程序。這個函數(shù)執(zhí)行它的組成語句并給操作系統(tǒng)返回一個值。

  下面是一個簡單的main函數(shù),它沒有返回值:

int main()
{
return 0;
}

  操作系統(tǒng)利用main函數(shù)返回的值 判定程序執(zhí)行成功還是失敗。返回0表明成功了。

  Main函數(shù)很非凡,其中最重要的是這個函數(shù)必須存在于每個C++程序中,而且它是操作系統(tǒng)明確調(diào)用的唯一一個函數(shù)。

  我們定義main函數(shù)的方式與定義其它函數(shù)是一樣的。函數(shù)定義說明了四個部分:返回類型、函數(shù)名稱、括號中帶有的參數(shù)列表(可能為空)和函數(shù)主體。Main函數(shù)可能包含一組參數(shù)。在上面的定義中,參數(shù)列表是空的。

  上面的main函數(shù)需要一個int類型的返回類型,它表示整型。整型是內(nèi)建的(built-in)類型,這意味著這種類型是語言所定義的。

  函數(shù)定義的最后一部分(函數(shù)主體),是一組以波浪括號(curly brace)開始,以波浪反括號結(jié)束的語句塊:

{
return 0;
}

  我們的程序中的唯一一條語句是return,它是用于終止函數(shù)的語句。

  注重

  請注重return語句后面的分號。在C++中分號標(biāo)志著大多數(shù)語句的結(jié)束。它們輕易被忽略,假如忘記了可能導(dǎo)致難以理解的編譯器錯誤信息。

  當(dāng)return包含一個值(例如0)的時候,這個值就是函數(shù)的返回值。返回值的類型必須與函數(shù)的返回類型相同或者必須能夠轉(zhuǎn)換成那種類型。在例子中main的返回類型是整型,而值0也是整型的。

  在大多數(shù)系統(tǒng)中,main的返回值是狀態(tài)標(biāo)識。返回值為0表明main成功執(zhí)行了。其它的返回值的意義由操作系統(tǒng)來定義。通常非0的返回值表明發(fā)生了錯誤。每個操作系統(tǒng)都由自身的、用于告訴用戶main函數(shù)返回值的途徑。

  1、編譯和執(zhí)行程序

  我們在編寫程序之后需要編譯它。編譯程序的方法依靠于操作系統(tǒng)和編譯器。假如你想了解編譯器工作的細(xì)節(jié)信息,那么需要查看參考或者求助同事。

  很多基于PC的編譯器都在集成開發(fā)環(huán)境(IDE)中運(yùn)行,同時它還綁定了相關(guān)的建立和分析工具。這些環(huán)境對于開發(fā)復(fù)雜的程序有很大的幫助,但是需要我們花大量的時間來學(xué)習(xí)如何高效率地使用它們。很多環(huán)境都包含了鼠標(biāo)指向和點(diǎn)擊(point-and-click)界面,它答應(yīng)程序員編寫程序并使用多種菜單來編譯和運(yùn)行程序。本文沒有介紹這一方面的內(nèi)容。

  很多編譯器(包括隨著IDE發(fā)布的),提供了命令行接口。除非你對編譯器IDE的使用非常熟悉,否則使用命令行接口更加輕易使用編譯器。使用命令行接口可以避免在學(xué)習(xí)某種語言之前需要先學(xué)習(xí)IDE的開銷。

  程序源文件命名習(xí)慣

  無論使用命令行接口還是IDE,大多數(shù)編譯器都希望被編譯的程序存儲在文件中。程序文件一般稱為源文件。在大多數(shù)系統(tǒng)中,源文件的名稱包含兩個部分--文件名(例如PRog1)和擴(kuò)展名。按照習(xí)慣,擴(kuò)展名表明該文件是一個程序。擴(kuò)展名通常表明了程序是用哪種語言編寫的,應(yīng)該選擇哪種編譯器來運(yùn)行。我們用來編譯本文中的示例文件的系統(tǒng)把擴(kuò)展名.CC作為C++程序,因此我們把程序保存為:prog1.cc

  C++程序文件的擴(kuò)展名依靠于你所使用的編譯器。其它一些命名習(xí)慣還包括:

prog1.cxx
prog1.cpp
prog1.cp
prog1.C

  調(diào)用GNU或微軟編譯器

  在不同的編譯器和操作系統(tǒng)上,用來調(diào)用C++編譯器的命令是不同的。大多數(shù)普通的編譯器都是GNU編譯器和微軟Visual Studio編譯器。在默認(rèn)情況下,調(diào)用GNU編譯器的命令是g++:

$ g++ prog1.cc -o prog1

  其中$是系統(tǒng)提示符。這個命令產(chǎn)生一個叫做prog1或者prog1.exe的可執(zhí)行文件(依靠于操作系統(tǒng))。在UNIX上,可執(zhí)行文件沒有后綴;在Windows上,后綴名是.exe。-o prog1是一個編譯器參數(shù),它指定了放置可執(zhí)行文件的文件名稱。假如忽略了這個參數(shù),在Unix系統(tǒng)上,編譯器生成一個叫做a.out的可執(zhí)行文件,在Windows上生成a.exe。

  我們使用cl命令調(diào)用微軟編譯器:

C:/Directory> cl -GX prog1.cpp

  其中是C:directory>系統(tǒng)提示符,directory是當(dāng)前目錄的名稱。調(diào)用編譯器的命令是cl,-GX是一個選項(xiàng),使用命令行接口編譯程序的時候需要這個選項(xiàng)。微軟編譯器自動地生成一個與源文件名對應(yīng)的可執(zhí)行文件。這個可執(zhí)行文件的擴(kuò)展名是.exe,名稱與源文件的名稱相同。在這種情況下可執(zhí)行文件是prog1.exe。你可以查看編譯器的用戶手冊找到更多信息。  在命令行運(yùn)行編譯器

  假如我們使用命令行接口,那么典型情況下我們會在控制臺窗口(例如UNIX系統(tǒng)中的shell窗口或Windows中的命令提示符窗口)中編譯程序。假設(shè)我們的主程序的程序名稱是prog1.cc,我們可以使用下面的命令來編譯它:

$ CC prog1.cc

  其中CC調(diào)用編譯器,$是系統(tǒng)提示符。它的輸出是一個可執(zhí)行文件,我們通過名字調(diào)用它。在我們的系統(tǒng)中,編譯器生成的可執(zhí)行文件的名稱是a.exe。UNIX可能把它們的可執(zhí)行文件叫做a.out。假如要運(yùn)行一個可執(zhí)行文件,只需要在命令行輸入它的名稱:

$ a.exe

  執(zhí)行我們編譯過的程序。在UNIX系統(tǒng)中,有時候即使某個文件在當(dāng)前目錄中,你也必須提供該文件所在的目錄。在這種情況下,我們應(yīng)該這樣輸入:

$ ./a.exe

  后面跟著斜線(/)的"."表明文件位于當(dāng)前目錄中。

  我們需要使用依靠系統(tǒng)的方式來訪問Main的返回值。在UNIX和Windows系統(tǒng)中,在執(zhí)行某個程序之后,你都必須提交適當(dāng)?shù)膃cho命令。在UNIX系統(tǒng)中,我們通過下面的命令來獲取狀態(tài):

$ echo $?

  查看Windows系統(tǒng)中的狀態(tài),需要使用:

C:/directory> echo %ERRORLEVEL%

  練習(xí)1:

  查看你的編譯器的文檔,看看它所使用的命名習(xí)慣。編譯和運(yùn)行main程序。

  練習(xí)2:

  修改程序,使它返回-1。返回-1值通常表明程序執(zhí)行失敗了。但是,不同的系統(tǒng)報告main失敗的情況有所不同。重新編譯和運(yùn)行該程序,看看系統(tǒng)如何處理main的失敗標(biāo)志。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 泸州市| 吴旗县| 自贡市| 吉隆县| 湾仔区| 曲麻莱县| 昌宁县| 邵武市| 夹江县| 玉田县| 鄄城县| 浏阳市| 石城县| 桦南县| 汕头市| 罗山县| 金山区| 桃园县| 通海县| 兴义市| 青冈县| 宁南县| 荆门市| 辽中县| 田林县| 读书| 宜黄县| 三台县| 云南省| 博罗县| 岳池县| 佛教| 黑山县| 张家川| 江城| 资讯 | 中宁县| 集安市| 吉林省| 册亨县| 德格县|