c语言的积木编程,c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了...
前面兩節(jié)介紹了如何快速搭建 C 語言開發(fā)學習環(huán)境,并且給出并解釋了 hello world 的代碼。上一節(jié)介紹了C語言的函數(shù),應該注意到,到目前為止,我們使用的函數(shù)都是現(xiàn)有的系統(tǒng)函數(shù)(例如 printf,sin 等函數(shù))。事實上,實際需求通常是很是復雜的,只依靠現(xiàn)有的函數(shù)很難完成。好在我們可以根據(jù)需求,自己界說 C 函數(shù)。
c語言入門3,自己造積木,掌握它就能隨心所欲的完成各種工作了-1.jpg (32.63 KB, 下載次數(shù): 0)
2018-11-4 22:45 上傳
可以把一個函數(shù)看作是一塊積木,各種各樣的積木才能聚積成復雜的建筑。只有幾種積木,能完成的建筑太有限了,如果能夠自己造各種各樣的積木,再復雜的建筑也能完成。通過前面兩節(jié)的內(nèi)容,我們已經(jīng)了解函數(shù)界說的語法了:
返回值類型 函數(shù)名(參數(shù)列表){ 語句列表}注意函數(shù)名在相應可見域內(nèi)要連結唯一性,例如,在 main 函數(shù)所在文件里界說的函數(shù)名不克不及也為 main。再啰嗦一下 main 函數(shù),主要是因為它是默認的入口函數(shù),比較特殊。
Old Style C的氣概的 main 函數(shù)界說寫成 main(){…} 形式,不寫返回值類型也不寫參數(shù)列表。Old Style C規(guī)定不寫返回值類型就暗示返回int型,不寫參數(shù)列表就暗示參數(shù)類型和個數(shù)沒有明確指出。這種寬松的規(guī)定會致使很多復雜的Bug產(chǎn)生,現(xiàn)在的 C 也連結了這種寫法的兼容,可是鑒于它可能會產(chǎn)生 bug,還是不要這樣寫。
其實系統(tǒng)在挪用 main 函數(shù)時是傳參數(shù)的,所以 main 函數(shù)最標準的形式應該是 int main(int argc, char * argv[]),這種參數(shù)傳遞在 linux 下使用起來很是便利,以后用到了再詳細解釋。C標準也規(guī)定了 int main(void) 這種形式,如果不使用系統(tǒng)傳進來的兩個參數(shù)也可以寫成這種形式。但除這兩種形式之外,以其它形式界說main函數(shù)都是毛病的或不成移植的。
c語言入門3,自己造積木,掌握它就能隨心所欲的完成各種工作了-2.jpg (45.05 KB, 下載次數(shù): 0)
2018-11-4 22:45 上傳
自界說函數(shù)
在了解了自界說函數(shù)的一些限制后,很容易就可以寫出如下代碼。下面的代碼中,我們界說了 printA 函數(shù),它的參數(shù)為空,也沒有返回值,僅僅是打印出一個字母 “A”。
#include #include void printA(void){ printf("A\n");}int main(){ printA(); return 0;}我們在 codeblocks 里執(zhí)行它,發(fā)現(xiàn)程序在控制臺中打印出了字母 A。
關于 codeblocks 的安裝和使用,可參照第一節(jié)。
c語言入門3,自己造積木,掌握它就能隨心所欲的完成各種工作了-3.jpg (54.15 KB, 下載次數(shù): 0)
2018-11-4 22:45 上傳
以后如果想打印 A,只需要執(zhí)行 printA 函數(shù)就可以了。更進一步的,我們自己界說的 printA 函數(shù)也可以當作系統(tǒng)函數(shù)(例如)一樣嵌套使用,請看如下代碼:
#include #include void printA(void){ printf("A\n");}void print2A(void){ printA(); printA();}int main(){ print2A(); printf("----\n"); print2A(); return 0;}我們又新界說了一個函數(shù) print2A,它的功能就是在控制臺打印兩個 A。在 codeblocks 里執(zhí)行,發(fā)現(xiàn)與預期一致。
c語言入門3,自己造積木,掌握它就能隨心所欲的完成各種工作了-4.jpg (57.84 KB, 下載次數(shù): 0)
2018-11-4 22:45 上傳
體會
從上面的簡單例子中,可以總結出以下信息:
同一個函數(shù)可以挪用屢次。可以用一個函數(shù)去挪用另一個函數(shù),第二個函數(shù)可以去挪用第三個函數(shù)。挪用自界說的函數(shù),是通過我們?nèi)〉拿峙灿玫?#xff0c;例如 main 函數(shù)中挪用 print2A();函數(shù)可以使代碼更簡潔,原本打印兩個 A 需要兩行代碼,現(xiàn)在只需要 print2A 一行就可以了。你可能會說,我界說 print2A 就用了 5 行啊,哪里簡潔了。可是,以后只要遇到需要打印兩個 A 的處所,我都可以挪用 print2A,如果有 10 個處所需要打印兩個 A 呢?另外,如果有一天,我想在打印兩個 A 的時候不換行,那我只需要修改 printA,把里面的 “\n”刪失落就可以了,而不消去找那 10 個需要打印兩個 A 的處所逐個修改。讀代碼和讀文章不一樣,按從上到下從左到右的順序讀代碼未必是最好的。好比上面的例子,按順序應該是先看 printA 再看 print2A 再看 main。不過,如果換一個角度,按代碼的執(zhí)行順序來讀也許會更好:
c語言入門3,自己造積木,掌握它就能隨心所欲的完成各種工作了-5.jpg (31.29 KB, 下載次數(shù): 0)
2018-11-4 22:45 上傳
因為 main 是入口函數(shù),所以第一句要執(zhí)行的就是 print2A 函數(shù),那它是什么功能呢?于是目光移到 print2A 函數(shù),它的第一句是 printA 函數(shù),于是進入 printA 函數(shù)。奧,知道了 print2A 先要打印一個 A,然后又要執(zhí)行 printA 函數(shù),又打印了一個 A。這下知道了,main 函數(shù)里的第一句要打印兩個 A。
實際上,在很多大型項目中,要熟悉它的代碼結構,第一件事往往就是找到入口函數(shù)。
c語言入門3,自己造積木,掌握它就能隨心所欲的完成各種工作了-6.jpg (71.5 KB, 下載次數(shù): 0)
2018-11-4 22:45 上傳
歡迎在評論區(qū)一起討論,質(zhì)疑。文章都是手打原創(chuàng),每天最淺顯的介紹C語言,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章哦。
更多內(nèi)容回復查看:
游客,如果您要查看本帖隱藏內(nèi)容請回復
總結
以上是生活随笔為你收集整理的c语言的积木编程,c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符集 (ASCII、GBK、UTF-8
- 下一篇: 小技巧:Win7屏保变梦幻桌面