十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
在C語言中主函數調用子函數,子函數被主函數調用,這就是它們之間的聯系。編寫函數主要有以下步驟,首先對函數進行定義,語法格式為:
創(chuàng)新互聯是一家專業(yè)提供南崗企業(yè)網站建設,專注與網站制作、網站建設、H5網站設計、小程序制作等業(yè)務。10年已為南崗眾多企業(yè)、政府機構等服務。創(chuàng)新互聯專業(yè)網站建設公司優(yōu)惠進行中。
類型說明符? 函數名 (含類型說明的形式參數表)
{
語句序列
}
形式參數的作用是實現主函數和被調函數之間的聯系。通常將函數所處理的數據、影響函數功能的因素或函數處理的結果作為形參。
然后還要確定函數的返回值及類型,格式為:
return? ?表達式;
這個語句的另一個作用是結束當前函數的執(zhí)行。一個函數可以不將任何值返回主函數,此時它的類型標識符為void,可以不寫return語句,也可以寫一個不帶表達式的return;語句。
擴展資料
C語言編程書寫規(guī)則:
1、一個說明或一個語句占一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,并單獨占一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格后書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規(guī)則,以養(yǎng)成良好的編程風格。
參考資料來源:《C++語言程序設計(第4版)》鄭莉? 董源 何江舟 編著? 清華大學出版社
第三章 函數? 3.1 函數的定義與使用
參考資料來源:百度百科--c語言
先回答下第一個問題,子函數的實現方法可以放在使用它的主函數或者其它子函數后面,但是你的定義一定要在使用它之前;不然編譯器怎么知道你用的函數square是什么,這就是我們經常包含頭文件的一個目的,頭文件是一些函數定義或者預編譯命令。
修改是在#includestdio.h后面加
int square(int num);
第二個問題:num是在main定義是可以在main作用域內直接使用,或者當做參數傳遞給子函數,你的問題num為什么可以在子函數中用,首先你子函數的num并非main里的num只是你把他們名字寫成一樣了;main里num是通過值傳遞給子函數的num,實際他們兩個num的內存地址是不一樣的,你子函數換個名字去理解一下。
C語言中想要使用一個自定義函數一般有以下三個步驟:
一、函數聲明:
在開發(fā)大型軟件都是采用多人合作開發(fā),一般一個人負責實現幾個功能,這些功能都是通過函數來實現。這總情況下我們一般采用函數聲明和定義分開模式。即函數聲明放在頭文件里。需要用到時包含相應的頭文件及方法庫即可,庫函數就是這種模式。函數的聲明主要是說明函數的名稱以及其所需要的參數類型,參數可以只寫類型不寫變量名,函數定義是需要變量名。
二、函數定義
這一步主要是寫函數功能的實現方法,代碼塊,核心部分。比步可以在函數聲明時進行,即聲明同時定義方法。不過這種方式不適合分享,因為你不一定想分享你的代碼,也許只想分享這個功能。不管哪種方法,在調用函數之前必須進行函數聲明。
三、函數調用
經過以上兩步,我們的函數已經完成。接下來就是使用函數,使用前先搞清楚函數需要有哪些參數,參數一定要傳入合適的類型。第二函數有沒有返回值,返回值的含義。我們可以通過返回值判斷函數的執(zhí)行情況,一般函數最好有返回值。想清楚后直接調用函數即可。
要知道 C語言是由MAIN函數開始也由它結束。
每調用一次分函數,只要運行完畢后就會回到調用分函數的地方繼續(xù)往后執(zhí)行。
C語言主要靠函數調用和return在函數之間切換,很難做到在多層調用中直接返回主函數。雖然goto語句可以無條件跳轉,但是必須在同一個函數中使用。
因此解決的方法也是用一個特殊的值作為需要返回的標志,然后在兩層調用函數中都遇到該值就返回,但是這個方法也有兩個前提:
1)你的兩個子函數都是由返回值的函數
2)你選擇的特殊值和函數正常的返回的取值不會沖突,不會引起二義性。
同樣的操作,C++可以通過異常處理的throw和catch來實現從子函數的子函數直接返回主函數,匯編語言可以用jmp指令跳轉實現這個需求。因此建議你的這個問題還是用C++ 的異常去解決比較好。