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

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

編輯:關於C++

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

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

int main()

{

return 0;

}

操作系統利用main函數返回的值判斷程序執行成功還是失敗。返回0表明成功了。

Main函數很特殊,其中最重要的是這個函數必須存在於每個C++程序中,而且它是操作系統明確調用的唯一一個函數。

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

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

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

{

return 0;

}

我們的程序中的唯一一條語句是return,它是用於終止函數的語句。

注意

請注意return語句後面的分號。在C++中分號標志著大多數語句的結束。它們容易被忽略,如果忘記了可能導致難以理解的編譯器錯誤信息。

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

在大多數系統中,main的返回值是狀態標識。返回值為0表明main成功執行了。其它的返回值的意義由操作系統來定義。通常非0的返回值表明發生了錯誤。每個操作系統都由自身的、用於告訴用戶main函數返回值的途徑。

1、編譯和執行程序

我們在編寫程序之後需要編譯它。編譯程序的方法依賴於操作系統和編譯器。如果你想了解編譯器工作的細節信息,那麼需要查看參考或者求助同事。

很多基於PC的編譯器都在集成開發環境(IDE)中運行,同時它還綁定了相關的建立和分析工具。這些環境對於開發復雜的程序有很大的幫助,但是需要我們花大量的時間來學習如何高效率地使用它們。很多環境都包含了鼠標指向和點擊(point-and-click)界面,它允許程序員編寫程序並使用多種菜單來編譯和運行程序。本文沒有介紹這一方面的內容。

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

程序源文件命名習慣

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

C++程序文件的擴展名依賴於你所使用的編譯器。其它一些命名習慣還包括:

prog1.cxx

prog1.cpp

prog1.cp

prog1.C

調用GNU或微軟編譯器

在不同的編譯器和操作系統上,用來調用C++編譯器的命令是不同的。大多數普通的編譯器都是GNU編譯器和微軟Visual Studio編譯器。在默認情況下,調用GNU編譯器的命令是g++:

$ g++ prog1.cc -o prog1

其中$是系統提示符。這個命令產生一個叫做prog1或者prog1.exe的可執行文件(依賴於操作系統)。在UNIX上,可執行文件沒有後綴;在Windows上,後綴名是.exe。-o prog1是一個編譯器參數,它指定了放置可執行文件的文件名稱。如果忽略了這個參數,在Unix系統上,編譯器生成一個叫做a.out的可執行文件,在Windows上生成a.exe。

我們使用cl命令調用微軟編譯器:

C:\directory> cl -GX prog1.cpp

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

在命令行運行編譯器

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

$ CC prog1.cc

其中CC調用編譯器,$是系統提示符。它的輸出是一個可執行文件,我們通過名字調用它。在我們的系統中,編譯器生成的可執行文件的名稱是a.exe。UNIX可能把它們的可執行文件叫做a.out。如果要運行一個可執行文件,只需要在命令行輸入它的名稱:

$ a.exe

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

$ ./a.exe

後面跟著斜線(/)的"."表明文件位於當前目錄中。

我們需要使用依賴系統的方式來訪問Main的返回值。在UNIX和Windows系統中,在執行某個程序之後,你都必須提交適當的echo命令。在UNIX系統中,我們通過下面的命令來獲取狀態:

$ echo $?

查看Windows系統中的狀態,需要使用:

C:\directory> echo %ERRORLEVEL%

練習1:

查看你的編譯器的文檔,看看它所使用的命名習慣。編譯和運行main程序。

練習2:

修改程序,使它返回-1。返回-1值通常表明程序執行失敗了。但是,不同的系統報告main失敗的情況有所不同。重新編譯和運行該程序,看看系統如何處理main的失敗標志。

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