编译器调试时常见错误
1、程序某位置上一个真正的语法错误可能导致编译器认为它发现了其他错误。
例如,程序未能正确生命变量,当后面用到这些变量的时候,编译器可能认为它
发现了更多的错误。实际上,不同立即试图改正所有发现的错误,只是修改前一个
或前两个,然后编译,其余的某些错误就可能会消失。一直这样做,直到程序能够
运行为止。
例如:
#include<stdio.h>int main(void)
{int n, int n2, int n3;n = 5;n2 = n * n;n3 = n2 * n2;printf("n = %d, n squared = %d, n cubed = %d\n", n, n2, n3);return 0;
}
程序中声明int n, int n2, int n3;应该改为:int n, n2, n3;
编译以上程序,编译器输出:
main.cpp: In function 'int main()':
main.cpp:5:9: error: expected unqualified-id before 'int'int n, int n2, int n3;^main.cpp:8:2: error: 'n2' was not declared in this scopen2 = n * n;^
main.cpp:9:2: error: 'n3' was not declared in this scopen3 = n2 * n2;
可以看出第一个错误比较准确,第二个、第三个错误是第一个错误引起的。
修改程序代码:
#include<stdio.h>int main(void)
{int n, n2, n3;n = 5;n2 = n * n;n3 = n2 * n2;printf("n = %d, n squared = %d, n cubed = %d\n", n, n2, n3);return 0;
}
程序编译、运行成功:
2、编译器的另一个常见毛病是发现的错误位置比真正的错误要滞后一行。例如:编译器要编译下一行时才发现上一行
缺少了一个分号。因此,如果编译器指出某个具有分号的行少了一个分号,那么请检查上一行。
例如以下程序:
#include<stdio.h>int main(void)
{int n, n2, n3;n = 5;n2 = n * n;n3 = n2 * n2;printf("n = %d, n squared = %d, n cubed = %d\n", n, n2, n3)return 0;
}
printf语句后面少了一个分号,编译器输出为:
main.cpp: In function 'int main()':
main.cpp:11:2: error: expected ';' before 'return'return 0;
编译器提示的是return 0;之前少了一个分号
编译器指向的行也是return所在的行,但是需要向前一行查找错误。
修正代码之后,程序正常编译、运行。
#include<stdio.h>int main(void)
{int n, n2, n3;n = 5;n2 = n * n;n3 = n2 * n2;printf("n = %d, n squared = %d, n cubed = %d\n", n, n2, n3);return 0;
}
程序编译、运行成功:
编译器调试时常见错误相关推荐
- linux编译安装的报错,linux编译安装时常见错误解决办法
This article is post on https://coderwall.com/p/ggmpfa 原文链接:http://www.bkjia.com/PHPjc/1008013.html ...
- PHP编译安装时常见错误解决办法,php编译常见错误
PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...
- Java的知识点6—— 强制类型转换、基本类型转化时常见错误和问题、 简单的键盘输入和输出
强制类型转换 强制类型转换,又被称为造型,用于显式的转换一个数值的类型.在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出. public class Test2 {pu ...
- linux libvpx编译安装,linux编译安装时常见错误解决办法
**configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution** 复 ...
- Python 运行时常见错误汇总
对于刚入门的Python新手,在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲.随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题.下面整理了常见的17个错误 ...
- 编译php时的configure,PHP编译configure时常见错误
PHP的安装虽然有时候很简单,可是如果应用一多,我们安装起来就很头痛了!出错最多的就是安装PHP扩展的时候了.其实不管是你是Apache类的应用还是Nginx类的,PHP的安装都不是很简单,虽然网上有 ...
- PHP编译configure时常见错误(转)
原文:https://blog.csdn.net/dodott/article/details/49664379 PHP的安装虽然有时候很简单,可是如果应用一多,我们安装起来就很头痛了!出错最多的就是 ...
- PPTP连接时常见错误提示原因及解决办法
相信大家在连接PPTP的时候,总会出现这样那样的错误代码,很令人头疼,下面我为大家整理了一些常见的错误代码供参考: ×××错误619解决办法 详解:私设IP或路由器不支持ppTp pass throu ...
- 大数据引擎启动时常见错误汇总
1.端口号被占用(java.net.BindException) 不论是Flink,还是Kafka,Zk,hadoop之类的,正常启动,jps进程却未显示错误,先查看启动日志.例如: 端口号被占用的错 ...
最新文章
- 多ajax请求的各类解决方案(同步, 队列, cancel请求)
- 使用 UIWebView 来播放视频
- golang 捕获堆栈信息_【网络数据安全】为什么时间戳对于数据包捕获很重要
- uiautomator2进阶
- Html5学习笔记1 元素 标签 属性
- python查看系统进程_在Python中获取操作系统的进程信息
- Java2实用教程第五版课后习题解析(持续更新,适合初学者)
- *printf()格式化串安全漏洞分析(上)
- matlab四大取整函数fix,floor,ceil,round
- msdn.itellyou.cn文件类型大小统计
- 在Word中方括号中打勾
- 教你用手机NFC模拟加密门禁卡-不用电脑,无需ROOT
- 服务器硬盘用在硬盘录像机,网络硬盘录像机是干什么用的
- 顺丰笔试-赏金猎人2020-08-20(参考时间最大利益)
- Gitee 自已提交的代码提交人头像却为他人
- Linux中write命令------实现用户间信息传递
- VC有什么用?该如何学习VC?
- 数字抽奖小程序_小程序直播卖货必看的营销干货:抽奖营销
- xp计算机管理下的服务显示不出来,WinXP系统任务栏不显示打开窗口的三种解决方案...
- 2021-2022学年广州外国语学校九年级第一学期12月考英语试题