warning:implicit declaration of function "XXXX" is invalid in C99
时间: 2024-01-07 15:19:13 浏览: 70
在C99中,函数的隐式声明是无效的。这意味着在使用一个函数之前,你需要先声明函数的原型。如果你没有在使用函数之前显式地声明函数,编译器就会发出"implicit declaration of function"的警告。
根据你提供的引用内容,你遇到的问题是函数'CAN_SendMsg'的隐式声明在C99中无效,同时使用了未声明的标识符'g_recvCANMsgInfo'。这表示你需要在使用'CAN_SendMsg'函数之前,先声明该函数的原型。另外,确保'g_recvCANMsgInfo'的声明在使用之前。
解决该问题的一种方法是在使用'CAN_SendMsg'函数之前,在代码中添加函数原型的声明,例如:
```c
void CAN_SendMsg();
```
同时,确保在使用'g_recvCANMsgInfo'之前进行声明,例如:
```c
int g_recvCANMsgInfo;
```
通过这些声明,你可以避免隐式声明的错误,并确保在C99中使用函数和变量时没有问题。
相关问题
Warning: implicit declaration of function 'fmc_erase' is invalid in C99
引用\[1\]:告警类型:warning: implicit declaration of function 'gets' is invalid in C99 \[-Wimplicit-function-declaration\]。引用\[2\]:函数“gets”的隐式声明在C99中无效。引用\[3\]:如果只声明函数而没有定义函数(函数的具体实现部分),那么就会直接报错:Error: L6218E: Undefined symbol function“XXX” (referred from main.o)!如果没有声明,但是已经定义了函数,只是会出现警告:Warning: #223-D: function “XXX” declared implicitly!。
问题:Warning: implicit declaration of function 'fmc_erase' is invalid in C99
回答: 这个警告是在C99标准中隐式声明函数'fmc_erase'无效导致的。在C99标准中,如果只声明函数而没有定义函数,会直接报错。如果没有声明但已经定义了函数,只会出现警告。所以,为了避免这个警告,你需要在代码中显式地声明函数'fmc_erase'。
#### 引用[.reference_title]
- *1* *2* [warning: implicit declaration of function ‘gets‘ is invalid in C99 [-Wimplicit-function-...](https://blog.csdn.net/qq_50635297/article/details/128265518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [关于Warning:Implicit declaration of function “xxx” is invalid in C99警告!](https://blog.csdn.net/family20102010/article/details/126155338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
warning: implicit declaration of function 'exti_init’ is invalid in C99
回答: 这个警告的意思是在C99标准中,函数'exti_init'的隐式声明是无效的。\[3\]在C语言中,函数的定义要出现在函数调用之前,否则会报错。如果在调用函数之前没有定义,就需要在调用之前进行函数的声明,然后再进行函数的定义。所以解决这个警告的方法是先声明函数,再调用函数,最后再定义函数。
#### 引用[.reference_title]
- *1* [warning: implicit declaration of function ‘gets‘ is invalid in C99 [-Wimplicit-function-...](https://blog.csdn.net/qq_50635297/article/details/128265518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [keil5 编译过程中出现“warning:implicit declaration of function ‘LED_Init ‘ is invalid in C99](https://blog.csdn.net/m0_54355842/article/details/113285623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [关于Warning:Implicit declaration of function “xxx” is invalid in C99警告!](https://blog.csdn.net/family20102010/article/details/126155338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]