永发信息网

我运行的C语言程序挂起了,应该怎么办?

答案:1  悬赏:10  手机版
解决时间 2021-02-20 13:44
我运行的C语言程序挂起了,应该怎么办?
最佳答案
当你运行一个程序时会有多种原因使它挂起,这些原因可以分为以下4种基本类型:
(1)程序中有死循环;
(2)程序运行的时间比所期望的长;
(3)程序在等待某些输入信息,并且直到输入正确后才会继续运行;
(4)程序设计的目的就是为了延迟一段时间,或者暂停执行。
在讨论了因未知原因而挂起的程序的调试技巧后,将逐个分析上述的每种情况。
调试那些因未知原因而挂起的程序是非常困难的。你可能花费了很长的时间编写一个程序,并努力确保每条代码都准确无误,你也可能只是在一个原来运行良好的程序上作了一个很小的修改,然而,当你运行程序时屏幕上却什么也没有显示。如果你能得到一个错误的结果,或者部分结果,你也许知道应该作些什么修改,而一个空白的屏幕实在令人沮丧,你根本不知道错在哪里。
在开始调试这样一个程序时,你应该先检查一下程序结构,然后再按执行顺序依次查看程序的各个部分,看看它们是否能正确运行。例如,如果主程序只包含3个函数调用——A()、B()和C(),那么在调试时,你可以先检查函数A()是否把控制权返回给了主程序。为此,你可以在调用函数A()的语句后面加上exit()命令,也可以用注释符把对函数B()和C()的调用括起来,然后重新编译并运行这个程序。
注意:通过调试程序(debugger)也可以做到这一点,然而上述方法是一种很传统的调试方法。调试程序是一个程序,它的作用是让程序员能够观察程序的运行情况、程序的当前运行行号、变量的值,等等。
此时你将看到函数A()是否将控制权返回给了主程序——如果该程序运行并退出,你可以判断是程序的其它部分使程序挂起。你可以用这种方法测试程序的每一部分,直到发现使程序挂起的那一部分,然后集中精力修改相应的函数。
有时,情况会更复杂一些。例如,使程序挂起的函数本身是完全正常的,问题可能出在该函数从别的地方得到了一些错误的数据。这时,你就要检查该函数所接受的所有的值,并找出是哪些值导致了错误操作。
技巧:监视函数是调试程序的出色功能之一。
分析下面这个简单的例子将帮助你掌握这种技巧的使用方法:
#include
#include

int A(), B(int), C(int, int);

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) ;
}
你可以在调用函数A()的语句后输出变量v1的值,以确认它是否在函数B()所能接受的值的范围之内,因为即使是函数B()使程序挂起,它本身并不一定就有错,而可能是因为函数A()给了函数B()一个并非它所期望的值。
现在,已经分析了调试“挂起”的程序的基本方法,下面来看看一些使程序挂起的常见错误。
一、死循环
当你的程序出......余下全文>>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么是复合模,什么是级进模,请分别举例说明
【皈怎么读】皈这字怎么读音
unity multithreadedunity rendering modepat
鑫凯亚图文快印地址在什么地方,想过去办事
卡带式摄像机
怎样证明limx^2=4
劳动合同里没写具体薪资,工作内容,只有职务
从军行(其二)的翻译
唐山到连云港多远?,火车路线,价钱,时间,
阿路特实木家居体验馆在什么地方啊,我要过去
电池上出现白色乳状物是什么
苏州市东方特种链条厂地址有知道的么?有点事
100*50*60的鱼缸可以成多少立方水
奔腾e5800怎么样
请问中外教育界领袖人物有哪些人幼年时是孤儿
推荐资讯
南北花园酒店我想知道这个在什么地方
仪表的分析小屋算是设备还是建构筑物
pos离线内卡和外卡是什么意思
景县龙华镇开发区健林招人吗?
河南鑫金汇不锈钢产业公司东1门这个地址在什
520什么礼物都没有收到,是什么意思。
威海或者烟台哪里有比较好的日语培训学校或是
描写人物动作、外貌、神态、心理的四字词语各
千里光眼镜育才店怎么去啊,有知道地址的么
氢气的化学性质和碳的化学性质有哪些不同点
lomoclub 是什么意思
为什么我以前用联通卡玩王者荣耀不会卡,换移
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?