为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?
导航:网站首页 >
我运行的C语言程序挂起了,应该怎么办?
时间:2017-11-14
相关问题:
匿名网友:
当你运行一个程序时会有多种原因使它挂起,这些原因可以分为以下4种基本类型:
(1)程序中有死循环;
(2)程序运行的时间比所期望的长;
(3)程序在等待某些输入信息,并且直到输入正确后才会继续运行;
(4)程序设计的目的就是为了延迟一段时间,或者暂停执行。
在讨论了因未知原因而挂起的程序的调试技巧后,将逐个分析上述的每种情况。
调试那些因未知原因而挂起的程序是非常困难的。你可能花费了很长的时间编写一个程序,并努力确保每条代码都准确无误,你也可能只是在一个原来运行良好的程序上作了一个很小的修改,然而,当你运行程序时屏幕上却什么也没有显示。如果你能得到一个错误的结果,或者部分结果,你也许知道应该作些什么修改,而一个空白的屏幕实在令人沮丧,你根本不知道错在哪里。
在开始调试这样一个程序时,你应该先检查一下程序结构,然后再按执行顺序依次查看程序的各个部分,看看它们是否能正确运行。例如,如果主程序只包含3个函数调用——A()、B()和C(),那么在调试时,你可以先检查函数A()是否把控制权返回给了主程序。为此,你可以在调用函数A()的语句后面加上exit()命令,也可以用注释符把对函数B()和C()的调用括起来,然后重新编译并运行这个程序。
注意:通过调试程序(debugger)也可以做到这一点,然而上述方法是一种很传统的调试方法。调试程序是一个程序,它的作用是让程序员能够观察程序的运行情况、程序的当前运行行号、变量的值,等等。
此时你将看到函数A()是否将控制权返回给了主程序——如果该程序运行并退出,你可以判断是程序的其它部分使程序挂起。你可以用这种方法测试程序的每一部分,直到发现使程序挂起的那一部分,然后集中精力修改相应的函数。
有时,情况会更复杂一些。例如,使程序挂起的函数本身是完全正常的,问题可能出在该函数从别的地方得到了一些错误的数据。这时,你就要检查该函数所接受的所有的值,并找出是哪些值导致了错误操作。
技巧:监视函数是调试程序的出色功能之一。
分析下面这个简单的例子将帮助你掌握这种技巧的使用方法:
#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) ;
}
你可以在调用函数A()的语句后输出变量v1的值,以确认它是否在函数B()所能接受的值的范围之内,因为即使是函数B()使程序挂起,它本身并不一定就有错,而可能是因为函数A()给了函数B()一个并非它所期望的值。
现在,已经分析了调试“挂起”的程序的基本方法,下面来看看一些使程序挂起的常见错误。
一、死循环
当你的程序出......余下全文>>
大家还关注:
问题推荐
为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?相关推荐
- c语言编程偏差及均方差,C语言写的方差调试成功却运行出错
C语言写的方差调试成功却运行出错0 #include #include main() { float ve[20]; printf("小于20个数,可求方差/n"); float ...
- 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )
文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...
- c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目
C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...
- c语言写贪吃蛇什么水平_细致的C语言写贪吃蛇教程+详细思路-适合新手附源码...
#史上最详细的C语言贪吃蛇教程 #前言 在有用C写贪吃蛇的一个想法之后,上网查了几个教程,觉得不是很能看懂.恩...或者说不是一下子就能看出来思路+具体怎么实现.所以,我花了早自习的时间想了想如何用最 ...
- 可运行的C语言程序的拓展名,可运行的c语言程序的扩展名为什么?
可运行的c语言程序的扩展名为".exe".c语言程序经过"编译程序"编译之后,生成一个后缀为".obj"的二进制文件:然后由"连接 ...
- 我的python程序_我试着运行我的python程序,但当我运行它时什么也没有发生
我在运行我用python编写的交互式小故事时遇到了问题.我总是遇到一些非ASCII错误,或者是一些不允许我运行程序的错误.在 如果你想试试这个程序:Program 我的代码是:#Programmer: ...
- 请用Python语言写一个巨潮资讯网批量下载PDF的程序
下面是一个使用 Python 的简单程序,可以批量下载巨潮资讯网上的 PDF 文件: import requests import os# 巨潮资讯网 PDF 文件的 URL 前缀 url_prefi ...
- 用c语言写的烟花在那上面运行,C语言烟花程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #define PI 3.1415926 main() { int gdriver=DETECT,g ...
- 用哪种语言写的应用漏洞最严重?六大主流语言代码漏洞分析报告出炉
来源:机器之心 本文约1600字,建议阅读5分钟 静态代码分析安全公司 Veracode 近日发布了一份应用程序分析报告,结果发现比起 JavaScript 和 Python 等语言,C++ 和 PH ...
最新文章
- powerdesigner 同步mysql 报错_PowerDesigner实用技巧小结 及 导出word,想字段顺序跟模型中一致,如何设置...
- 字节跳动教育业务怎么样_[财经]字节跳动教育品牌叫什么名字?大力教育怎么样? - 南方财富网...
- python装饰器类-python_类装饰器
- NOIP2018 退役记
- 牛客网NC112--进制转换
- kafka依赖zookeeper原因解析及应用场景
- python空列表添加_Python列表的简单操作
- Java(TM) platform SE binary 占用cpu过高
- Storm案例:统计单词个数
- 欧姆定律基本知识(笔记)
- 达内2018年最新前端
- 万测试验机软件,万测TestStar®新秀®100kN微机控制电子万能试验机
- [转] PHP:自己动手制作伪原创程序
- C++中引用变量的探究
- Linux版Flash亮相,但64位版需时间
- ejb2.0详细开发过程
- 接口返回本站点必须要开启JavaScript才能运行的解决方案
- 使用Apache poi生成excel并绘制折线统计图,扇形统计图
- 50个表单功能,验证,安全和自定义化的jQuery插件
- JIRA Service Desk获得 ITIL 认证