1.2 C語言結(jié)構(gòu)
1.2 C語言結(jié)構(gòu)
1.2.1 C程序及結(jié)構(gòu)
【例1.1】
【例1.2】從鍵盤輸入一個(gè)實(shí)數(shù)x,求x的正弦值。
在main()之前的兩行稱為預(yù)處理命令。預(yù)處理命令還有其他幾種,這里的include稱為文件包含命令,其意義是把尖括號<>或引號""內(nèi)指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統(tǒng)提供的,其擴(kuò)展名為.h,因此也稱為頭文件或首部文件。C語言的頭文件中包括了各個(gè)標(biāo)準(zhǔn)庫函數(shù)的函數(shù)原型,因此,凡是在程序中調(diào)用一個(gè)庫函數(shù)時(shí),都必須包含該函數(shù)原型所在的頭文件。在本例中,使用了三個(gè)庫函數(shù):輸入函數(shù)scanf(),正弦函數(shù)sin(),輸出函數(shù)printf()。sin()函數(shù)是數(shù)學(xué)函數(shù),其頭文件為math.h文件,因此在程序的主函數(shù)前用include命令包含了math.h。scanf()和printf()是標(biāo)準(zhǔn)輸入輸出函數(shù),其頭文件為stdio.h,在主函數(shù)前也用include命令包含了stdio.h文件。
C語言的主函數(shù)體中又分為兩部分,一部分為說明部分,另一部分為執(zhí)行部分。說明是指變量的類型說明。例題1.1中未使用任何變量,因此無說明部分。
C語言規(guī)定,源程序中所有用到的變量都必須先說明,后使用,否則將會出錯(cuò)。這一點(diǎn)是編譯型高級程序設(shè)計(jì)語言的一個(gè)特點(diǎn),與解釋型的BASIC語言是不同的。說明部分是C源程序結(jié)構(gòu)中很重要的組成部分。本例中使用了兩個(gè)變量x、s,用來表示輸入的自變量和sin()函數(shù)值。由于sin()函數(shù)要求這兩個(gè)量必須是雙精度浮點(diǎn)型,因此,用類型說明符double來說明這兩個(gè)變量。說明部分后的四行為執(zhí)行部分或稱為執(zhí)行語句部分,用以完成程序的功能。執(zhí)行部分的第一行是輸出語句,調(diào)用printf()函數(shù)在顯示器上輸出提示字符串,請操作人員輸入自變量x的值。第二行為輸入語句,調(diào)用scanf()函數(shù),接受鍵盤上輸入的數(shù)并存入變量x中。第三行是調(diào)用sin()函數(shù)并把函數(shù)值送到變量s中。第四行是用printf()函數(shù)輸出變量s的值,即x的正弦值。最后,程序結(jié)束。
運(yùn)行本程序時(shí),首先在顯示器屏幕上給出提示串input number,這是由執(zhí)行部分的第一行完成的。用戶在提示下從鍵盤上鍵入某一數(shù),如3.14,按下回車鍵,接著在屏幕上給出計(jì)算結(jié)果,如圖1.3所示。
【小提示】
程序中的注釋信息是編程規(guī)范的重要內(nèi)容,對理解和閱讀程序有很大幫助,注釋信息可以放在程序的任何位置,不參與編譯,不影響程序的運(yùn)行。C語言中加注釋提供了以下兩種方法。
(1)塊注釋。用符號“/*”和“*/”標(biāo)出注釋的開始和結(jié)束,在符號“/*”和“*/”之間的任何內(nèi)容都將被編譯程序當(dāng)作注釋來處理。這種方法是在程序中加入注釋的最好方法。例如,你可以在程序中加入下述注釋:
(1)編輯。可以用任何一種編輯軟件將在紙上編寫好的C程序輸入計(jì)算機(jī),并將C語言源程序文件*.c以純文本文件形式保存在計(jì)算機(jī)的磁盤上(不能設(shè)置字體、字號等)。
(2)編譯。編譯過程使用C語言編譯程序?qū)⒕庉嫼玫脑闯绦蛭募?.c”,翻譯成二進(jìn)制目標(biāo)代碼文件“*.obj”。編譯程序?qū)υ闯绦蛑鹁錂z查語法錯(cuò)誤,發(fā)現(xiàn)錯(cuò)誤后不僅會顯示錯(cuò)誤的位置(行號),還會告知錯(cuò)誤類型信息。我們需要再次回到編輯軟件修改源程序的錯(cuò)誤,然后再進(jìn)行編譯,直至排除所有語法和語義錯(cuò)誤。
(3)連接。程序編譯后產(chǎn)生的目標(biāo)文件是可重定位的程序模塊,不能直接運(yùn)行。連接將編譯生成的各個(gè)目標(biāo)程序模塊和系統(tǒng)或第三方提供的庫函數(shù)“*.lib”連接在一起,生成可以脫離開發(fā)環(huán)境、直接在操作系統(tǒng)下運(yùn)行的可執(zhí)行文件“*.exe”。
(4)運(yùn)行程序。如果經(jīng)過測試,運(yùn)行可執(zhí)行文件達(dá)到預(yù)期設(shè)計(jì)目的,這個(gè)C程序的開發(fā)工作便到此完成了。如果運(yùn)行出錯(cuò),這說明程序處理的邏輯存在問題,需要再次回到編輯環(huán)境針對程序出現(xiàn)的邏輯錯(cuò)誤進(jìn)一步檢查、修改源程序,重復(fù)編輯→編譯→連接→運(yùn)行的過程,直到取得預(yù)期結(jié)果為止。
2.使用Dev-C++編譯運(yùn)行C程序
Dev-C++是一個(gè)Windows環(huán)境下C/C++的集成開發(fā)環(huán)境(IDE),如圖1.4所示,小巧輕量但是功能齊備,適合初學(xué)者與編程高手的不同需求,是學(xué)習(xí)C或C++的首選開發(fā)工具。Dev-C++開發(fā)環(huán)境所包含的是編輯、編譯、調(diào)試和執(zhí)行C程序所必須的標(biāo)準(zhǔn)功能。對于使用要求嚴(yán)格的C++程序員,Dev-C++包含了多種可能的編程環(huán)境,允許你不需要多少手動操作就可以編寫所有的源代碼。