天天看点

嵌入式C/C++常见错误和注意事项

嵌入式C/C++常见错误和注意事项

  • ​​引言​​
  • ​​介绍​​
  • ​​在函数的某个循环中使用return​​
  • ​​后续​​

引言

我们在嵌入式开发中,编写完一个新功能,但实现别的效果差强人意,检查后发现逻辑并没有什么错误,此时我们就要注意,是否是C/C++使用技巧的错误。本文就来总结一下,常遇到的错误。

介绍

在函数的某个循环中使用return

我们在嵌入式开发中,如果使用任务调度,往往每个任务中都有一个死循环。而我们有时候需要某任务函数带有返回值,就会不小心在循环中使用了return,此问题导致的后果就是,会直接让我们的循环停止,去执行调用此函数后的语句。我们如果初始时设想是不断的执行循环,只是在特定的时候返回值,那么我们就要注意这个问题。return 是会跳出函数的,无论你在函数的哪个循环里。

下面举个例子:

#include <stdio.h>
#include <windows.h>
#include <stdint.h>
uint8_t test();
int main()
{
    uint8_t A;//1
    while(!test())//2
    {
        printf("cccc:\n");//3
    }
    printf("bbbbb\n");//4
    system("pause");
    return 0;
}
uint8_t test()
{
 int A1=0;
 int i;
for(i=0;i<10;i++)//5
{
        A1=i;
        if(A1==5)//6
        {
        printf("A1:%d\n",A1);//7
        return 1;//8
      }
      return 0;//9
      printf("iiiii:%d\n",i);//10
}
}      

后续

继续阅读