一個(gè)簡(jiǎn)單程序的結(jié)構(gòu)
你已經(jīng)看過(guò)一個(gè)具體的例子,下面可以了解一些 C程序的基本規(guī)則了。
程序由一個(gè)或多個(gè)函數(shù)組成,其中一定有一個(gè)名為 main()的函數(shù)。函數(shù)的描述由函數(shù)頭和函數(shù)體組成。函數(shù)頭包括預(yù)處理語(yǔ)句#include和函數(shù)名。可以通過(guò)圓括號(hào)識(shí)別一個(gè)函數(shù)名。而函數(shù)體位于花括號(hào) { }中,并由一系列語(yǔ)句組成,每個(gè)語(yǔ)句以一個(gè);結(jié)束 。
一個(gè)包含函數(shù)頭和函數(shù)體的函數(shù)
上面的例子中包含一個(gè)聲明語(yǔ)句,指出所使用的變量名和類型。然后是一個(gè)賦值語(yǔ)句,給變量賦一個(gè)值。接著,是1個(gè)輸出語(yǔ)句,調(diào)用 printf()函數(shù)。最后,main()由一個(gè) return 語(yǔ)句結(jié)束。
程序的可讀性
讓程序具有可讀性是一個(gè)良好的編程習(xí)慣。一個(gè)可讀的程序更易于理解,而且可以更容易地修改它。使程序可讀還有助于你自己對(duì)程序所做的事情概念更清楚。
前面我們都已經(jīng)知道了兩種提高可讀性的技巧:
● 選擇有意義的變量名
● 使用注釋
請(qǐng)注意這兩種技巧的互補(bǔ)性。如果變量名是 width(寬度),就不需要用注釋來(lái)說(shuō)明該變量表示寬度,但是如果變量名是 video_routine_4,那么就需要解釋一下 video routine 4的具體意義了。
第三個(gè)技巧是使用空行分隔一個(gè)函數(shù)的多個(gè)部分。例如,前面那個(gè)簡(jiǎn)單的示例程序就使用一個(gè)空行來(lái)分隔定義部分和動(dòng)作部分。 C不要求有這個(gè)空行,但它可以增加程序的可讀性。
第四個(gè)技巧就是每個(gè)語(yǔ)句盡量都只用一行。同樣,這也是提高可讀性的一個(gè)約定,而不是 C語(yǔ)言的要求。C的格式比較自由,你可以把多個(gè)語(yǔ)句放在一行或把一個(gè)語(yǔ)句分成好多行。
下面的語(yǔ)句對(duì)于編譯器來(lái)說(shuō)是合法的,但是非 常 不 好 看:
事實(shí)上如果你在公司里寫(xiě)代碼如果是這種風(fēng)格的話,你第二天就會(huì)被項(xiàng)目經(jīng)理辭退,還會(huì)狠狠的罵一頓教你C語(yǔ)言的人,雖然他可能不知道是誰(shuí)教的你C語(yǔ)言!
變量的多個(gè)聲明
在一個(gè)程序中,需要實(shí)現(xiàn)的功能越多,那么所定義的變量就會(huì)越多,這時(shí)候我們通常可以在一個(gè)聲明語(yǔ)句里聲明兩個(gè)變量。為此,在聲明語(yǔ)句中需要用一個(gè)逗號(hào)把兩個(gè)變量 分開(kāi)。也就是說(shuō),
int a,b;
和
int a;
int b;
所表達(dá)的意思是完全相同的,只是所書(shū)寫(xiě)的方式不一樣。
程序的多個(gè)函數(shù)
到目前為止,這些程序中只有一個(gè)main函數(shù)的函數(shù)體,那么除了 main()函數(shù)之外,怎樣把你自己的函數(shù)加入到程序中呢。
我們來(lái)看看下面的例子
hanshuyi( )函數(shù)和hanshuer( )函數(shù)在上面的程序中出現(xiàn)了 3次。
第一次出現(xiàn)是在函數(shù)聲明中,通知編譯器后面要用到的該函數(shù)。
第二次是在main()函數(shù)中以函數(shù)調(diào)用的形式出現(xiàn)的。
最后,程序給出了函數(shù)本身的源代碼。讓我們依次看一下它在程序中的每一次出現(xiàn)。
首先,我們寫(xiě)的hanshuyi()函數(shù)的定義方式和 main()是相同的,都是用一個(gè)函數(shù)頭和括在花括號(hào)中的函數(shù)體。同時(shí),hanshuyi()函數(shù)的執(zhí)行時(shí)間由 main()函數(shù)調(diào)用它的位置決定,而不是由 hanshuyi()在文件中定義的位置決定的。
例如,在本程序中,你可以把 hanshuyi()函數(shù)定義在 main()函數(shù)的前面,程序的執(zhí)行不會(huì)改變,hanshuyi()函數(shù)仍是在兩次 printf()調(diào)用之間執(zhí)行的。記住,所有的 C語(yǔ)言程序都是從 main()函數(shù)開(kāi)始執(zhí)行的,main函數(shù)也稱之為入口函數(shù),不管它在程序文件中處于什么位置。
最后我們來(lái)看下函數(shù)的走向,
當(dāng)聲明函數(shù)之后,我們就進(jìn)入了主函數(shù),執(zhí)行第一句printf()函數(shù);
然后通過(guò)簡(jiǎn)單地給出 hanshuyi()函數(shù)的名字在 main()函數(shù)中調(diào)用該函數(shù);
當(dāng) hanshuyi()執(zhí)行完畢后,程序會(huì)繼續(xù)執(zhí)行 main()函數(shù)的下一個(gè)語(yǔ)句,也就是第二個(gè)printf()函數(shù);
然后再執(zhí)行hanshuer() ;
然后執(zhí)行g(shù)etchar()函數(shù),防止閃屏;
最后return結(jié)束顯示窗口。
責(zé)任編輯:pj
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137463 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4345瀏覽量
62890 -
C程序
+關(guān)注
關(guān)注
4文章
255瀏覽量
36098
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論