VC6經(jīng)常出現(xiàn)這種現(xiàn)象,因?yàn)榫彺娴膯栴},導(dǎo)致調(diào)試時(shí)提示不正確,實(shí)際上程序是對的。如果是VC6,還有個(gè)辦法,關(guān)閉工程,刪除*.ncb文件,重啟項(xiàng)目,重新編譯,基本就OK。
為南皮等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及南皮網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、做網(wǎng)站、南皮網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
你問出這個(gè)問題,說明你還不明白函數(shù)參數(shù)傳遞的本質(zhì)。原則上說,函數(shù)的實(shí)參和形參是必須一致的,但某些時(shí)候,在源代碼中,你的實(shí)參和形參可能會(huì)不一致,這種情況下,編譯器會(huì)嘗試進(jìn)行隱性轉(zhuǎn)換,如果轉(zhuǎn)換不了,那么就會(huì)報(bào)錯(cuò)。
在main函數(shù)之前做函數(shù)申明一定沒錯(cuò)。在main函數(shù)之前添加這一句float m(int x,float y)還有,你說的int x,float y這兩個(gè)參數(shù)類型不一樣,這是完全允許的;實(shí)參在向形參傳遞參數(shù)的時(shí)候:實(shí)參會(huì)按照形參的類型進(jìn)行轉(zhuǎn)換。
1、形參一般控制在四個(gè)以下。如果是整個(gè)程序都要用到的,可以定義為全局變量,減少形參。另外,相關(guān)聯(lián)的變量以數(shù)組的形式傳入也可以減少形參。可由其它形參計(jì)算得到的盡量不要重復(fù)設(shè)為形參。
2、是不是調(diào)用函數(shù)的形參過多?一般來說,函數(shù)的參數(shù)都存在棧中,當(dāng)然也可以申請堆。如果形參過多就會(huì)發(fā)生棧溢出,用遞歸的時(shí)候發(fā)生較多。棧溢出會(huì)發(fā)生段錯(cuò)誤,也就是可能會(huì)占用系統(tǒng)的棧(好像不能訪問)。。
3、看了好久竟然沒有看出什么問題,看起來許是自己水準(zhǔn)不夠。
4、c++中允許使用默認(rèn)參數(shù)和函數(shù)重載,來實(shí)現(xiàn)相同函數(shù)名接收不同個(gè)數(shù)和類型的參數(shù)。c語言中有可變參數(shù),但是需要你在函數(shù)實(shí)現(xiàn)中實(shí)現(xiàn)可變參數(shù),比如printf函數(shù)就是通過可變參數(shù)實(shí)現(xiàn),可以接受個(gè)數(shù)可變的參數(shù)。
5、我也遇到過這種問題,呵呵。一般是你在編寫頭文件時(shí)對函數(shù)的申明中沒有參數(shù)或者只有一個(gè)參數(shù),這樣在源文件中你又在該函數(shù)數(shù)中帶有兩個(gè)或多個(gè)參數(shù),編譯器現(xiàn)實(shí)編譯頭文件的,這樣與后來的源文件不一致,所以就出錯(cuò)了。
6、1 可以相同,形式參數(shù)只是實(shí)參的一個(gè)副本,是按值傳遞的,對實(shí)參沒有影響,形參的名字可以隨便取,可以相同可以不同。2 形參缺省的話,缺省的參數(shù)值可填可不填,可以使用默認(rèn)值,或者自己設(shè)定參數(shù)值。
1 可以相同,形式參數(shù)只是實(shí)參的一個(gè)副本,是按值傳遞的,對實(shí)參沒有影響,形參的名字可以隨便取,可以相同可以不同。2 形參缺省的話,缺省的參數(shù)值可填可不填,可以使用默認(rèn)值,或者自己設(shè)定參數(shù)值。
在C語言中,形參即為形式參數(shù)。它在整個(gè)函數(shù)編譯的時(shí)候,沒有實(shí)際的數(shù)據(jù)賦于它,僅僅作于定義某個(gè)函數(shù)或者函數(shù)名。而實(shí)參既為實(shí)際參數(shù)。顧名思義,在函數(shù)中,有一個(gè)特定的數(shù)據(jù)賦值給它,可以作于在函數(shù)中進(jìn)行運(yùn)算。
main函數(shù)可以帶形參,形參名字隨便,比如你可以叫main(int amao, char **agou),這沒問題,但形參的數(shù)量類型以及順序是固定的。
形參出現(xiàn)在函數(shù)定義中,在整個(gè)函數(shù)體內(nèi)都可以使用,離開該函數(shù)則不能使用。形參和實(shí)參的功能是數(shù)據(jù)傳送,發(fā)生函數(shù)調(diào)用時(shí),主調(diào)函數(shù)把實(shí)參的值傳送給被調(diào)函數(shù)的形參從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。
int rollDice(void)括號里的void是說這個(gè)函數(shù)不需要參數(shù)。前面的int是說這個(gè)函數(shù)返回的是一個(gè)int類型的值。而worksum正是int類型的值。
分享文章:c語言函數(shù)形參溢出 c語言中數(shù)據(jù)的溢出怎么算
文章源于:http://chinadenli.net/article36/deisdsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、用戶體驗(yàn)、網(wǎng)站導(dǎo)航、動(dòng)態(tài)網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)