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

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

C++啟蒙之編寫(xiě)簡(jiǎn)單的C++程序

2019-11-17 05:35:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

  下面是一個(gè)簡(jiǎn)單的main函數(shù),它沒(méi)有返回值:

int main()
{
return 0;
}

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

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

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

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

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

{
return 0;
}

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

  注重

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

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

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

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

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

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

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

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

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

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

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

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

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

$ g++ prog1.cc -o prog1

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

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

C:/Directory> cl -GX prog1.cpp

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

  在命令行運(yùn)行編譯器

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

$ CC prog1.cc

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

$ a.exe

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

$ ./a.exe

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

  我們需要使用依靠系統(tǒng)的方式來(lái)訪問(wèn)Main的返回值。在UNIX和Windows系統(tǒng)中,在執(zhí)行某個(gè)程序之后,你都必須提交適當(dāng)?shù)膃cho命令。在UNIX系統(tǒng)中,我們通過(guò)下面的命令來(lái)獲取狀態(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)報(bào)告main失敗的情況有所不同。重新編譯和運(yùn)行該程序,看看系統(tǒng)如何處理main的失敗標(biāo)志。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 防城港市| 措美县| 金昌市| 车致| 大余县| 承德县| 精河县| 农安县| 旬邑县| 南通市| 华阴市| 金秀| 大洼县| 阿勒泰市| 南汇区| 连平县| 炉霍县| 得荣县| 横山县| 云安县| 杭州市| 无极县| 大同县| 深州市| 湘潭市| 伊春市| 宁蒗| 沭阳县| 吴川市| 黎城县| 余干县| 新巴尔虎右旗| 桃园市| 湖州市| 宜都市| 岑巩县| 修文县| 桦南县| 元谋县| 卫辉市| 太仓市|