..\SYSTEM\usart\usart.c(50): warning: #940-D: missing return statement at end of non-void function "_sys_exit"
时间: 2024-04-10 09:29:02 浏览: 220
这个警告是由于 `_sys_exit` 函数没有在结尾处包含返回语句导致的。在非 void 类型的函数中,需要确保在函数的每个执行路径上都有返回语句。你可以在函数的最后添加一个合适的返回语句来解决这个警告。例如,如果函数返回一个整数类型的值,你可以添加 `return 0;` 来表示函数执行成功并返回 0。
相关问题
compiling usart.c... ..\SYSTEM\usart\usart.c(148): error: #79: expected a type specifier USART_ClearITPendingBit(USART1, USART_IT_RXNE); ..\SYSTEM\usart\usart.c(148): error: #79: expected a type specifier USART_ClearITPendingBit(USART1, USART_IT_RXNE); ..\SYSTEM\usart\usart.c(148): warning: #77-D: this declaration has no storage class or type specifier USART_ClearITPendingBit(USART1, USART_IT_RXNE); ..\SYSTEM\usart\usart.c(148): error: #147: declaration is incompatible with "void USART_ClearITPendingBit(USART_TypeDef *, uint16_t)" (declared at line 393 of "..\STM32F10x_FWLib\inc\stm32f10x_usart.h") USART_ClearITPendingBit(USART1, USART_IT_RXNE); ..\SYSTEM\usart\usart.c(149): error: #169: expected a declaration } ..\SYSTEM\usart\usart.c(152): warning: At end of source: #12-D: parsing restarts here after previous syntax error ..\SYSTEM\usart\usart.c: 2 warnings, 4 errors "..\SYSTEM\usart\usart.c" - 4 Error(s), 2 Warning(s).
根据你提供的错误信息,编译usart.c时出现了一些问题。其中,第一个错误是在第148行,缺少了类型说明符。第二个错误也是在第148行,同样缺少了类型说明符。第三个错误是在第148行,这个声明缺少了存储类或类型说明符。第四个错误是在第148行,这个声明与在"..\STM32F10x_FWLib\inc\stm32f10x_usart.h"文件的第393行声明的 "void USART_ClearITPendingBit(USART_TypeDef *, uint16_t)" 不兼容。第五个错误是在第149行,缺少了一个声明。最后一个警告是在第152行,源码结束后重新开始解析。
根据这些信息,你需要检查usart.c文件的第148行和149行的代码,并确保声明的类型和参数与之前的声明匹配。此外,还要确保代码的结构正确,没有语法错误。
..\..\User\usart.c(92): warning: #223-D: function "TIM3_Int_Init" declared implicitly
这个警告提示你在usart.c文件中调用了一个未显式声明的函数TIM3_Int_Init。在C语言中,如果你要在一个源文件中使用另一个源文件中定义的函数,你需要在调用函数之前显式地声明它。这是因为编译器需要知道函数的返回类型和参数类型等信息才能正确生成代码。
要解决这个警告,你需要在usart.c文件中添加一个函数声明,如下所示:
```c
void TIM3_Int_Init(void);
```
将这个声明放在usart.c文件开头或者在包含usart.c的头文件中声明即可。这样编译器就知道TIM3_Int_Init函数的返回类型和参数类型,就不会再提示警告了。
阅读全文