Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1148588
  • 博文数量: 153
  • 博客积分: 10576
  • 博客等级: 上将
  • 技术积分: 2137
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-02 21:01
文章分类

全部博文(153)

文章存档

2009年(43)

2008年(110)

分类: C/C++

2008-04-08 11:37:48

这些天一直在琢磨道哥那个程序怎么弄,也在一点一点写,自己挺粗心的,水平也有限,代码中错误不少,写程序的水平不怎么样,调试程序的水平倒是见长,今天不写了,把前些天和以前写程序过程中遇到的错误和调试方法整理一下,以便以后参考,慢慢的再补全。

错误一    拼写错误    这种错误都是由于不小心拼写错或者是由于代码较长,在写到一半时自己引用了一个变量而又忘了在在前边声明而造成的
        gcc提示如下错误
        test.c:4: error: ‘b’ undeclared (first use in this function)
        test.c:4: error: (Each undeclared identifier is reported only once
        test.c:4: error: for each function it appears in.)
                解决方法:到指定的行里修改拼写错误或在代码起始处声明需要用到的变量 在这里需要说明一下的是默认情况下,用vi编辑器打开代码后是不会表明行号的,要想快速到达指定行修改错误可以在vi编辑器的命令模式下输入 set number 回车,vi就会在每行前边显示行号。
错误二    声明变量或定义变量时出错    这种错误表现在比如我想定义a变量为int行,错写为short,又或者我想定义一个以太网数据包包头结构体,
        struct ethhdr{
                        char dmac[6];
            char smac[6];
            unsigned short proto;
            }
            而我在写的过程中写成了char *dmac[6];这样就会出现错误,但是在编译时gcc并不会报错,而程序运行结果始终错误,这时首先要做的就是检查一边所有程序中定义的变量(我觉得这一步非常重要),一般一遍就可以解决问题,最好的还是在写代码时细心,彻底解决这类问题只能提高自己的编程素质。
错误三    逻辑错误  这种错误在实际中出现主要是由于编程者对自己要做什么以及怎么做并不是特别清楚,或是对实现方法的错误认识,或者是关键语句(如while语句)内部的{}匹配问题使得有些代码始终无法执行,这时可以选一些有特征性的测试数据送给程序,在这种情况下,通过观察运行结果,我们可以轻易的发现出错部分。对于像while这样的循环语句,可以用gdb逐步执行,观察所执行到的语句。
如果{}匹配出错,如缺少一个
gcc会报错test.c:5: error: expected declaration or statement at end of input
阅读(1932) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~