zoukankan      html  css  js  c++  java
  • Keil5调试过程中遇到的一些警告和错误

    作者:struct_mooc 博客地址:https://www.cnblogs.com/structmooc/p/11318666.html

    最近用keil5调试代码出了一些警告与错误,整理如下:
    1.warning: #1295-D: Deprecated declaration run_c - give arg types

    void run_c();//原函数
    void run_c(void);//改正后
    

    对比前面声明的函数,发现是括号少了一个void,因为我的函数是不带参的,不加void会有警告的,往括号里加了void之后,重新编译之后警告消失。
    2.warning: #940-D: missing return statement at end of non-void function "Gray_Delay_Run40"

    int Gray_Delay_Run40(u16 i)//原函数
    {
    	while(i -- )
    	{
    		delay_ms(1);
    		Gray_Run40();
    	}
    }
    
    int Gray_Delay_Run40(u16 i)//改正1
    {
    	while(i -- )
    	{
    		delay_ms(1);
    		Gray_Run40();
    	}
        return 0;
    }
    
    void Gray_Delay_Run40(u16 i)//改正2
    {
    	while(i -- )
    	{
    		delay_ms(1);
    		Gray_Run40();
    	}
    }
    

    因为我函数是int型的,是需要有返回值,但是我没有return,加入return 0;之后重新编译警告消失。或者直接把int改成void,同样编译后警告消失。

    3.warning: #177-D: variable "a" was declared but never referenced

    s32 a =	50;//原函数
    //s32 a = 50;//改正后
    

    因为我定义了一个变量准备在后面用到,但是后面直接用数字代替了,没有用到,将这个变量注释后,重新编译警告消失。

    4.warning: #177-D: function "Delayms" was declared but never referenced

    static void Delayms(u16 i)
    {
        ...
    }
    
    //static void Delayms(u16 i)    //改正后
    //{
    //    ...
    //}
    

    这里和第3个错误差不多,因为我定义了一个函数准备在后面用到,但是后面没有用到,将这个函数注释后,重新编译警告消失。

    5.warning: #128-D: loop is not reachable
    这个警告的意思是我无法跳出这个循环,我跳到这行看,发现的确少了一个break,加入之后重新编译,警告消失!

    6.error: At end of source: #67: expected a "}"
    这个错误很明显,就是说少了一个括号,因为我是一部分一部分调试的,调试完一部分注释,最后全部恢复优化,就报了这个错误,至于在哪里不知道,因为一点错误直接跳转到最后一行,但是我这个循环里面有上千条代码,一条一条慢慢过去找不现实。解决办法是二分法查找,先注释上半部分代码,没了错误,那肯定就是在上半部分少了"}",继续二分法,最后几十行看看就知道错在哪里了,加上括号,重新编译错误解决!

  • 相关阅读:
    【Android进阶】关于PagerAdapter的使用方法的总结
    不容易系列之(4)——考新郎
    阿牛的EOF牛肉串
    Number Sequence
    盐水的故事
    Digital Roots
    密码 hdu
    不容易系列之(3)—— LELE的RPG难题
    冒泡排序----java实现
    不容易系列之一
  • 原文地址:https://www.cnblogs.com/structmooc/p/11318666.html
Copyright © 2011-2022 走看看