Snwhs 2024-04-23 20:26 采纳率: 90.3%
浏览 1
已结题

这个报告是哪里出了问题

img


这个警告是哪里出了问题,求解答
11111111111222222

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2024-04-23 20:26
    关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    问题描述:这个报告出现了警告,而且提示了 'drive init' 函数在 C99 标准下无效。

    可能原因及解决方案:

    1. 函数名称错误:错误的函数名称会导致编译器无法找到该函数。检查一下代码中函数名称是否正确。

    2. 函数未声明:如果没有在文件开头声明函数,编译器会认为函数是一个隐式声明,而导致警告。在函数调用前声明函数即可。

    3. 头文件缺失:如果头文件没有包含函数声明,编译器将无法识别函数。将函数声明添加到正确的头文件中。

    4. 编译器版本不支持:C99 标准中引入的某些特性在早期的编译器版本中不支持。更新编译器或使用C89标准可解决问题。

    修改后的正确代码:

    确保函数名称正确,并在代码开头声明函数,将函数声明加入正确的头文件中。

    例如,将 'drive init' 函数添加到 drive.h 头文件中:

    
    // drive.h
    #ifndef DRIVE_H
    #define DRIVE_H
    
    void drive_init(void); // 函数声明
    
    #endif
    
    

    在 main 函数中,包含 drive.h:

    
    // main.c
    #include "stm32f10x.h"
    #include "drive.h" // 包含 drive.h
    
    int main(void)
    {
        drive_init(); // 调用 drive_init() 函数
        while(1)
        {
            // 程序循环
        }
    }
    
    

    在 drive.c 文件中实现 drive_init() 函数:

    
    // drive.c
    #include "drive.h"
    
    void drive_init(void)
    {
        // 函数实现
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月23日