嵌入式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
}
}