Naiva 2025-03-21 11:43 采纳率: 33.3%
浏览 30

为什么STM32 keil5中不直接将引用的头文件包含在OLED.h中,然后在OLED.c中包含“OLED.h”这一个头文件就行了?

请教一个问题 ,为什么STM32 keil5中不直接将引用的头文件包含在OLED.h中,然后在OLED.c中包含“OLED.h”这一个头文件就行了?

img

img

img

  • 写回答

5条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-21 11:43
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    在STM32 keil5中,通常将引用的头文件包含在源文件(.c文件)中,而不是直接包含在头文件(.h文件)中的原因是为了提高编译速度和避免不必要的重复编译。如果将所有引用的头文件都包含在头文件中,那么每次使用该头文件的时候都会重新编译所有引用的头文件,增加编译时间。而将引用的头文件包含在源文件中,可以减少需要重新编译的头文件数量,提高编译效率。 以下是一个简单的示例,展示了在OLED.c中包含"OLED.h"头文件的方法:
    // OLED.c
    #include "OLED.h"
    // 实现OLED的相关函数
    void OLED_Init() {
        // 初始化OLED
    }
    void OLED_DisplayString(char* str) {
        // 在OLED上显示字符串
    }
    

    而在OLED.h中只需要声明函数原型即可:

    // OLED.h
    #ifndef __OLED_H
    #define __OLED_H
    void OLED_Init();
    void OLED_DisplayString(char* str);
    #endif
    

    这样可以有效地降低编译时间,并保持代码的整洁性。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月21日