WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺(tái)
- WIKI程序與應(yīng)用
- 美國十大主機(jī)
子程序
來自站長百科
子程序就是能被其他程序調(diào)用,在實(shí)現(xiàn)某種功能后能自動(dòng)返回到調(diào)用程序去的程序。其最后一條指令一定是返回指令,故能保證重新返回到調(diào)用它的程序中去。也可調(diào)用其他子程序,甚至可自身調(diào)用(如遞歸)。在計(jì)算機(jī)科學(xué)中,子程式是一個(gè)大型程式中的某部份程式碼,由一個(gè)或多個(gè)語句塊組成。它負(fù)責(zé)完成某項(xiàng)特定任務(wù),而且相較于其他程式碼,具備相對的獨(dú)立性。一般會(huì)有輸入?yún)?shù)并有返回值,提供對過程的封裝和細(xì)節(jié)的隱藏。這些代碼通常被整合為軟件庫。函數(shù)在面向過程的語言中已經(jīng)出現(xiàn)。是結(jié)構(gòu)(Struct)和類(Class)的前身。本身就是對具有相關(guān)性語句的歸類和對某過程的抽象。
子程序分類[ ]
- 子程式(subroutine)是一個(gè)概括性的術(shù)語,任何高階程序所呼叫的程序,都被稱為子程式。它經(jīng)常被使用在組合語言層級上。子程式的主體(body)是一個(gè)程式碼區(qū)塊,當(dāng)它被呼叫時(shí)就會(huì)進(jìn)入執(zhí)行。
- 函數(shù)(function)是一種子程式,利用函數(shù)名稱,可以接收回傳值。例如:
c = max (a,b); |
- 程序(procedure)是一種子程式,它能夠接受不同的引數(shù),來執(zhí)行某些特別的動(dòng)作。例如:
printf("Hello World\n") |
函數(shù)與程序在某些編程語言中是被分開的,但是在C語言中,所有程序都是函數(shù),這兩者被認(rèn)為是相同的。這有可能造成一些副作用,特別是在回傳值是void型別時(shí)。在面向?qū)ο?a href="/wiki/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1" title="程序設(shè)計(jì)">程序設(shè)計(jì)語言中,類別或物件中的子程式,被稱為方法(method)。
子程序的作用[ ]
- 降低復(fù)雜性:使用子程序的最首要原因是為了降低程序的復(fù)雜性,可以使用子程序來隱含信息,從而使你不必再考慮這些信息。
- 避免代碼段重復(fù):無可置疑,生成子程序最普遍的原因是為了避免代碼段重復(fù)。
- 限制改動(dòng)帶來的影響:由于在獨(dú)立區(qū)域進(jìn)行改動(dòng),因此,由此帶來的影響也只限于一個(gè)或最多幾個(gè)區(qū)域中。要把最可能改動(dòng)的區(qū)域設(shè)計(jì)成最容易改動(dòng)的區(qū)域。最可能被改動(dòng)的區(qū)域包括:硬件依賴部分、輸入輸出部分、復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和商務(wù)規(guī)則。
- 隱含順序:把處理事件的非特定順序隱含起來是一個(gè)很好的想法。
- 改進(jìn)性能:通過使用子程序,可以只在一個(gè)地方,而不是同時(shí)幾個(gè)地方優(yōu)化代碼段。把相 同代碼段放在子程序中,可以通過優(yōu)化這一個(gè)子程序而使得其余調(diào)用這個(gè)子程序的子程序全部 受益。把代碼段放入子程序也使得用更快的算法或執(zhí)行更快的語言(如匯編)來改進(jìn)這段代碼 的工作變得容易些。
- 進(jìn)行集中控制
- 隱含數(shù)據(jù)結(jié)構(gòu)
- 隱含指針操作
- 隱含全局變量
- 促進(jìn)重新使用代碼段
- 計(jì)劃開發(fā)一個(gè)軟件族
- 改善某一代碼段可讀性
- 改善可移植性
- 分隔復(fù)雜操作
- 獨(dú)立非標(biāo)準(zhǔn)語言函數(shù)的
- 簡化復(fù)雜的布爾測試