| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8831 人关注过本帖
标题:如何调试C程序的语法错误和逻辑错误
只看楼主 加入收藏
zhongjiamin
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-3-4
收藏
 问题点数:0 回复次数:0 
如何调试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语言 调试 
2006-03-04 11:39
快速回复:如何调试C程序的语法错误和逻辑错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018873 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved