⑴ 什麼是子程序,如何使用子程序呢
子程序(subroutine)是一個概括性的術語,任何高級程序所調用的程序,都被稱為子程序。它經常被使用在匯編語言層級上。子程序的主體(body)是一個代碼區塊,當它被調用時就會進入運行。
一般程序設計語言包含兩種基本的抽象:過程抽象和數據抽象。過程抽象有時也稱控制抽象。子程序是最主要過程抽象機制。面向對象語言中的方法與子程序的概念十分相似,不同在於它們的調用以及它們與類或對象關聯的方式。每個子程序只有一個入口。在執行期間,調用程序單位被停止執行,即任意時刻只有一個子程序在執行子程序執行完畢後,總是將控制返回給調用程序
(1)通用子程序過程用什麼表示類型擴展閱讀:
子程序的應用
1、零件上若干處具有相同的輪廓形狀,在這種情況下,只要編寫一個加工該輪廓形狀的子程序,然後用主程序多次調用該子程序的方法完成對工件的加工。
2、加工中反復出現具有相同軌跡的走刀路線,如果相同軌跡的走刀路線出現在某個加工區域或在這個區域的各個層面上,採用子程序編寫加工程序比較方便,在程序中常用增量值確定切入深度。
3、在加工較復雜的零件時,往往包含許多獨立的工序,有時工序之間需要適當的調整,為了優化加工程序,把每一個獨立的工序編成一個子程序,這樣形成了模塊式的程序結構,便於對加工順序的調整,主程序中只有換刀和調用子程序等指令。
⑵ C語言子程序的定義和調用
1、在C/C++中,沒有子程序的說法,而叫做函數。函數可以有返回值,不需要時,可定義為void類型。函數的使用與子程序的用法相同,沒有什麼特殊之處。
2、例如
.............................................................................
int max(int a, int b) { /* 返回a和b的最大值 */
return (a > b) ? a : b;
}
.............................................................................
int a = 5,b = 8,c = 3;
printf("a,b,c中的最大值是 : %d\n",max(max(a,b),c);
⑶ c語言的子程序有過程和函數兩種嗎
C語言中沒有過程的概念,只有函數。 PASCAL語言中的過程和函數到了C語言中全部都是函數,而過程就是沒有返回值的函數。
一個程序開始運行時,運行的是主程序段。之後主程序調用的其他程序段就叫子程序。
C語頌桐言的程序段都是以函數形式存在,所以除了主程序main()以外,其他程序中出現的函數都是子程序。
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語好雀言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年野襪坦代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。
目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
⑷ 3、子程序的RET指令執行時,FAR 類型和 NEAR類型有何差異為什麼
子程序名相當於標號,表示本過程的符號地址。
過程有NEAR和FAR兩種類型,FAR型的過程可供段間調用,NEAR型過程僅供段內調用。 在一個過程中辯消,至少要有一條返回指升御令RET,它可以書寫在過程中的任何位置,但是過程執行的的最後一條指令一定是RET。
子程序在其任務完成後,執行的最後一條匯編指令是RET。根據對該子程序的調用是段內調用還是段間調用,其要實現的操作是不相同的。如果是段內調用,那麼RET指令的功能只是把存放在堆棧里的返回地址送IP寄存器;如果是段間調用,那麼RET指令的功能就是要把存放在堆棧里的返回地址和段地址,分別送IP寄存器和CS寄存器。因此,RET指令的使用也有多種吵灶岩形式:段內返回、段內帶立即數返回、段間返回和段間帶立即數返回。