- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言基本结构
第二章;第二章 C語言從零開始(C語言的基本結構);大綱;下面是一個簡單的C程式範列,請逐字將之輸入到『.c』的檔案中,慢慢培養屬於自己的程式風格。(若您的IDE已經幫您建立了某些預設內容,請先將它刪除後再輸入。)
範例2-1:ch2_01.c(檔案位於隨書光碟 ch02\ch2_01.c)。
;2.1 最簡單的C程式範例;2.1 最簡單的C程式範例;2.2 註解(comment);2.2 註解(comment);在C語言中,前置處理指令是前面出現「#」符號的指令,嚴格說起來,前置處理指令並非C語言的指令,因為這些指令會在程式進行編譯之前,先被前置處理器(preprocessor)置換成某些程式碼,因此前置處理指令又稱為假指令。在此,我們先說明#include這個前置處理指令,至於其他的前置處理指令,則留待後面章節中再做說明。
#include的功用在於引入標頭檔,所謂標頭檔就是放置某些已經撰寫完成函式內容的函式庫檔案,這些標頭檔可能是由編譯器所提供,也可能是自行撰寫的函式庫。我們必須先引入標頭檔,才可以使用標頭檔內所提供的函式。例如:stdio.h標頭檔中定義了printf()與scanf()函式的內容,stdlib.h標頭檔中定義了system()函式的內容。因此,若我們在程式中要使用這些函式的話,就必須使用#include stdio.h及#include stdlib.h將這些函式庫檔案引入。;2.3 前置處理指令-#include;2.3 前置處理指令-#include;2.3 前置處理指令-#include;【函式庫的功能】:引入的函式庫會在前置處理時被載入,通常函式庫會記錄許多的函式,除此之外,函式庫也可能定義了某些符號常數,例如數學的無限大在電腦中根本無法完全實現,因此只能用可儲存的最大值來代表,例如INT_MAX代表在int資料型態下的最大值2147483647,而INT_MAX的定義也被包含在limits.h之中。;2.3 前置處理指令-#include;2.4 C程式的進入點main(…)函式;main()函式是命令列(Console Mode)C程式的進入點,換句話說,當我們在命令列式的作業系統中執行由C所撰寫的應用程式時,會先從main()函式開始執行。
在範例2-1中,我們將main函式宣告為main(void),其中將void寫在()內,代表該函式不接受傳入任何引數資料。若將之寫在函式名稱前,則代表該函式執行完畢後不回傳任何資料,例如:void main()。大多數的編譯器都接受省略void的宣告語法(但可能會出現warning警告訊息),也就是當省略宣告void時,自動判定為不接受傳入引數或函式不回傳資料。例如我們可以將範例2-1的main函式定義改寫如下:
;除了上述的介紹之外,main函式還具有以下兩個特點:
(1) 唯一性:在C函式中,任何函式都具有唯一性,main函式也是如此。
(2) 必要性:為了讓作業系統能夠找到程式進入點,因此不可省略或缺少main函式。
【解析】:本書以命令列式的C語言程式為說明主體,也就是以純粹指令模式(console mode)下的C程式為主要說明對象,若在Windows或Mac OS上的C/C++程式,則由於作業系統上層還包含一層複雜架構(Framework),因此,如果要設計視窗程式,則必須遵循Framework的設計規範,而這將改變C /C++程式的運作規則,例如:Windows下的C /C++程式進入點為WinMain( )函式。
【解析】:main函式的呼叫者為作業系統,因此範例2-1的程式並不接受作業系統傳入引數,也不會回傳任何數值給作業系統。但有的時候作業系統會傳入引數給main函式,例如:我們撰寫一個可接受指定總球數及開獎球數的樂透程式,並將之編譯為lotto執行檔,此時可以在作業提示符號後面輸入『lotto 42 7』,來要求該程式以最大號碼42號的基本條件開出7個隨機號碼(6個基本號+1個特別號)。這個時候,我們就必須在main的『()』中宣告所接受的引數資料型態了(詳見第7章)。;C語言是模組化設計,並利用區塊來撰寫程式內容,區塊的符號為『{}』,不論是函式、迴圈、決策都是使用區塊符號來包裝內容。
而區塊內容則是由敘述(statement)所組成,每一個敘述後面必須加入『;』做為結束。例如:範例2-1中,main函式內容共有3個敘述,分別是『printf(歡迎使用C語言!\n);』、『printf(這是一個簡單的C程式.\n);』及『system(pause);』。
前兩個敘述都是呼叫printf()函式,『()』內的字串則是傳入printf()函式的引數,而printf()函式則已經定義在stdio.h標頭檔中。
文档评论(0)