为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?
導(dǎo)航:網(wǎng)站首頁(yè) >
我運(yùn)行的C語(yǔ)言程序掛起了,應(yīng)該怎么辦?
時(shí)間:2017-11-14
相關(guān)問(wèn)題:
匿名網(wǎng)友:
當(dāng)你運(yùn)行一個(gè)程序時(shí)會(huì)有多種原因使它掛起,這些原因可以分為以下4種基本類(lèi)型:
(1)程序中有死循環(huán);
(2)程序運(yùn)行的時(shí)間比所期望的長(zhǎng);
(3)程序在等待某些輸入信息,并且直到輸入正確后才會(huì)繼續(xù)運(yùn)行;
(4)程序設(shè)計(jì)的目的就是為了延遲一段時(shí)間,或者暫停執(zhí)行。
在討論了因未知原因而掛起的程序的調(diào)試技巧后,將逐個(gè)分析上述的每種情況。
調(diào)試那些因未知原因而掛起的程序是非常困難的。你可能花費(fèi)了很長(zhǎng)的時(shí)間編寫(xiě)一個(gè)程序,并努力確保每條代碼都準(zhǔn)確無(wú)誤,你也可能只是在一個(gè)原來(lái)運(yùn)行良好的程序上作了一個(gè)很小的修改,然而,當(dāng)你運(yùn)行程序時(shí)屏幕上卻什么也沒(méi)有顯示。如果你能得到一個(gè)錯(cuò)誤的結(jié)果,或者部分結(jié)果,你也許知道應(yīng)該作些什么修改,而一個(gè)空白的屏幕實(shí)在令人沮喪,你根本不知道錯(cuò)在哪里。
在開(kāi)始調(diào)試這樣一個(gè)程序時(shí),你應(yīng)該先檢查一下程序結(jié)構(gòu),然后再按執(zhí)行順序依次查看程序的各個(gè)部分,看看它們是否能正確運(yùn)行。例如,如果主程序只包含3個(gè)函數(shù)調(diào)用——A()、B()和C(),那么在調(diào)試時(shí),你可以先檢查函數(shù)A()是否把控制權(quán)返回給了主程序。為此,你可以在調(diào)用函數(shù)A()的語(yǔ)句后面加上exit()命令,也可以用注釋符把對(duì)函數(shù)B()和C()的調(diào)用括起來(lái),然后重新編譯并運(yùn)行這個(gè)程序。
注意:通過(guò)調(diào)試程序(debugger)也可以做到這一點(diǎn),然而上述方法是一種很傳統(tǒng)的調(diào)試方法。調(diào)試程序是一個(gè)程序,它的作用是讓程序員能夠觀察程序的運(yùn)行情況、程序的當(dāng)前運(yùn)行行號(hào)、變量的值,等等。
此時(shí)你將看到函數(shù)A()是否將控制權(quán)返回給了主程序——如果該程序運(yùn)行并退出,你可以判斷是程序的其它部分使程序掛起。你可以用這種方法測(cè)試程序的每一部分,直到發(fā)現(xiàn)使程序掛起的那一部分,然后集中精力修改相應(yīng)的函數(shù)。
有時(shí),情況會(huì)更復(fù)雜一些。例如,使程序掛起的函數(shù)本身是完全正常的,問(wèn)題可能出在該函數(shù)從別的地方得到了一些錯(cuò)誤的數(shù)據(jù)。這時(shí),你就要檢查該函數(shù)所接受的所有的值,并找出是哪些值導(dǎo)致了錯(cuò)誤操作。
技巧:監(jiān)視函數(shù)是調(diào)試程序的出色功能之一。
分析下面這個(gè)簡(jiǎn)單的例子將幫助你掌握這種技巧的使用方法:
#include
#include
/*
* Declare the functions that the main function is using
*/
int A(), B(int), C(int, int);
/*
* The main program
*/
int A(), B(), C(); /*These are functions in some other
module * /
int main()
{
int v1, v2, v3;
v1 = A();
v2 = B(v1);
v3 = C(v1, v2);
printf (The Result is %d. \n , v3);
return(0) ;
}
你可以在調(diào)用函數(shù)A()的語(yǔ)句后輸出變量v1的值,以確認(rèn)它是否在函數(shù)B()所能接受的值的范圍之內(nèi),因?yàn)榧词故呛瘮?shù)B()使程序掛起,它本身并不一定就有錯(cuò),而可能是因?yàn)楹瘮?shù)A()給了函數(shù)B()一個(gè)并非它所期望的值。
現(xiàn)在,已經(jīng)分析了調(diào)試“掛起”的程序的基本方法,下面來(lái)看看一些使程序掛起的常見(jiàn)錯(cuò)誤。
一、死循環(huán)
當(dāng)你的程序出......余下全文>>
大家還關(guān)注:
問(wèn)題推薦
總結(jié)
以上是生活随笔為你收集整理的为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 湖南师范大学c语言作业答案,2017年湖
- 下一篇: c语言程序设计橙皮,橙皮_中药词典C_中