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