如何调试C程序的语法错误和逻辑错误

语法错误]

语法错误,这是C语言初学者出现最多的错误,比如,分号“;”是每个C语句的结束的标志,在C语句后忘记写“;”就是语法错误,发生语法错误的程序,编译通不过,用户可以软件的提示信息来修改。

C语言的错误信息的形式

错误 文件名 行号 冒号 错误内容

↓ ↓ ↓ ↓ ↓

Error E:\frist.c 5 : Function call missing) in function main

C语言初学者常见的语法错误有:

将英文符号输入成中文符号、使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未C声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。

用Turbo c for windows 集成实验与学习环境调试语法错误,编译时会自动定位到第一条错误处,下面错误双击错误信息即可自动定位到相应错误处,不过建议:

1、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。

2、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。

用[Turbo C for windows 集成实验与学习环境]调试语法错误时,编译时会自动定位到第一条错误处

上图为[中英文错误信息同步显示和编译错误时软件自动定位到错误行并选中该行],如果想了解发生错误的原因,可以用鼠标单击“上图”右边“资源树”中的“中英文错误信息修正表,可以找到发生错误的原因,然后按原因修改错误即可。

[逻辑错误 ]

逻辑错误就是用户编写的程序已经没有语法错误,可以运行,但得不到所期望的结果(或正确的结果),也就是说由于程序设计者原因程序并没有按照程序设计者的思路来运行。比如一个最简单例子是:我的目的是求两个数的和的,应该写成 z=x+y; 由于某种原因却写成了 z=x-y; 这就是逻辑错误。

发生逻辑错误的程序编译软件是发现不了,要用户跟踪程序的运行过程才能发现程序中逻辑错误,这是最不容易修改的。

一、修改逻辑错误

程序运行后,得不到所期望的结果(或正确的结果),如上面所说的目的是求两个数的和,程序语句却写成了求两个数的差的语句,这说明程序存在逻辑错误。

上图调试逻辑错误时监视变量的值

用[Turbo c for windows 集成实验与学习环境]调试逻辑错误,可以程序中任一行和该行前的变量值,如果你调试的变量在循环中,运行程序后,可以查看监视变量在每一次循环中的值,可以很方便地调试逻辑错误,但一次最多查看4个变量的值。

二、常见的逻辑错误

常见的逻辑错误有,运算符使用不正确、语句的先后顺序不对、条件语句的边界值不正确、循环语句的的初值与终值有误等。发生逻辑错误的程序是不会产生错误信息,需要程序设计者细心地分析阅读程序,并具有程序调试经验。

三、调试技巧

监视循环体时,只要监视循环开始的几次和最后几次循环和循环体内的条件语句成立与否时的各变量的值,就可以知道该循环是否有逻辑错误。

监视选择语句时关键是看条件成立与否的分界值。

软件的下载地址:天空软件站http://www2.skycn.com/soft/24124.html

[此贴子已经被作者于2006-3-4 11:41:26编辑过]

c语言调试程序错误,如何调试C程序的语法错误和逻辑错误相关推荐

  1. c语言出现了语法错误能编译吗,如何调试C程序的语法错误和逻辑错误

    如何调试C程序的语法错误和逻辑错误 语法错误] 语法错误,这是C语言初学者出现最多的错误,比如,分号":"是每个C语句的结束的标志,在C语句后忘记写":"就是语 ...

  2. 如何定位逻辑错误C语言,如何调试C程序的语法错误和逻辑错误

    如何调试C程序的语法错误和逻辑错误 语法错误] 语法错误,这是C语言初学者出现最多的错误,比如,分号":"是每个C语句的结束的标志,在C语句后忘记写":"就是语 ...

  3. 简述python调试程序_简单调试 Python 程序

    在 Python 中也可以像 gcc/gdb 那样调试程序,只要在运行 Python 程序时引入 pdb 模块(假设要调试的程序名为 d.py): $ vi d.py #!/usr/bin/pytho ...

  4. vc6.0 调试程序,终止调试时程序却无法退出

    详情描述: VC6.0发布于1998年,到文章发布的今天已经23年了,但由于他的绿色.小巧,我一直还在使用它. 在使用vc6.0(系统:windows 7 64 bit,Win10 64 bit)调试 ...

  5. python启动c语言gdb,使用gdb调试python程序

    游戏服务器菜鸟之C#初探三游戏服务 在经过上述2番折腾之后,最后决定使用TCP进行通信,所以在一次进行重构 主要重构的要点 1.将过来的HTPP请求,重构为TCP请求: 2.使用组件FluenSche ...

  6. cfree下面显示运行程序错误_Matlab系列之程序调试

    学完了程序优化,再来个程序调试,关于MATLAB的编程基础我觉得也就差不多可以了,之后应该就是对数组.矩阵进行更加具体的操作,对数学函数进一步的了解等等,之后可以算是对MATLAB的进阶了吧,突然有点 ...

  7. 用 gdb 调试 GCC 程序

    用 gdb 调试 GCC 程序       Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构 ...

  8. python意外缩进引发逻辑错误_如何编写 Python 程序

    如何编写 Python 程序 从今以后,保存和运行 Python 程序的标准步骤如下: 对于 PyCharm 用户 打开 PyCharm. 以给定的文件名创建新文件. 输入案例中给出的代码. 右键并运 ...

  9. 一般如何调试php程序吗,如何调试PHP程序

    用PHP编程,出现了错误如何进行调试呢? 每个程序员都知道,一丁点细节的关注,就有可能避免非常多的错误.就像我今天收到了北京移动的短信通知,内容是:要扣除我的月租了.我就觉得如果做PHP程序员能够像移 ...

  10. 非此即彼的逻辑错误_电影发行中的10个逻辑错误

    原标题:电影发行中的10个逻辑错误 电影发行中的10个逻辑错误 国内的大部分电影发行从微观上讲没有模式可循,只有经验可凭,说到底每个片子和每个片子都不一样,其实也真的用不到微观上固定模式.还是那句话, ...

最新文章

  1. anaconda创建一个虚拟环境
  2. 4月书讯(上) | 这本书值得所有的等待
  3. 命令行 蓝牙_Noble - Window平台NodeJs蓝牙BLE开发库
  4. 深刻感知运营之“痛”,我们推出了新产品——神策智能运营
  5. centos 安装mysql
  6. python安装第三方库win10_音频处理 windows10下python三方库librosa安装教程
  7. keepalived实现haproxy高可用详解
  8. 【韩顺平Servlet视频教程】下载
  9. C++ Vector 使用心得
  10. CentOs7设置主机名称,以及主机名称和ip的对应关系
  11. Java常用设计模式(面试常考)
  12. 【JS基础】JavaScript轮播图代码详解
  13. FutureMapping:空间人工智能的计算结构
  14. L1-7 机工士姆斯塔迪奥
  15. IE代理服务器没有响应 浏览器无法打开网页解决方法(浏览器无法打开网页但是可以使用其他软件)
  16. 支持掉线自动报警Profinet远程分布式IO模块
  17. win10安装IIS时报错windows无法请求的更改,错误代码0x8007057解决办法2017年10月15日
  18. JS setTimeout延迟时间为0的详解
  19. Redis——热点key问题
  20. ppt扇形图怎么显示数据_PPT中如何用半圆型饼图体现数据百分比

热门文章

  1. python的常量_python中的常量
  2. 阿里云开启关闭防火墙
  3. 大家来找茬游戏html,大家来找茬单机版游戏
  4. python中timeout什么意思_Python爬虫(五)timeout以及retrying的使用
  5. C#替换方向性的 Unicode 控制字符,解决无法匹配iphone 通讯录复制的手机号码问题
  6. Codeforces Round #459 (Div. 1) B. MADMAX
  7. 西安大唐提车游记——感受古都容颜
  8. 常用LDO低压差线性稳压芯片封装型号以及基本电路
  9. ASP.NET2.0 ReportingServices,报表灵魂的收割者
  10. win7 计算器 android,强大的Win7计算器