Keil5调试过程中遇到的一些警告和错误

Posted structmooc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keil5调试过程中遇到的一些警告和错误相关的知识,希望对你有一定的参考价值。

最近用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.error: At end of source: #67: expected a ""

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

以上是关于Keil5调试过程中遇到的一些警告和错误的主要内容,如果未能解决你的问题,请参考以下文章

keil4宏定义赋值报错

keil5数组下标异常

keil编译C程序时出现了这样的错误,不知道怎么解决?(高分悬赏)

仅当存在警告或更严重级别的日志事件时记录所有级别

编译过程时出现oracle错误

IOS开发中 常常遇到的遇到的警告,错误汇总,解决方法