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