STM32学习笔记-宏定义引起的问题
STM32学习笔记-宏定义引起的问题
1. 问题描述
使用这样的宏定义
#if GPS_MODULE_TYPE == GPS_UM220
#define LWGPS_CFG_STATEMENT_GPSTIME 1
#define LWGPS_CFG_STATEMENT_BDSTIME 1
#endif
在另外一个头文件中定义如下语句
#if GPS_MODULE_TYPE == GPS_UBLOX
文件一没有包含文件二,编译没有报错也没有警告,但是发现
#define LWGPS_CFG_STATEMENT_GPSTIME 1
#define LWGPS_CFG_STATEMENT_BDSTIME 1
这两句话被定义,编译器自动将#if GPS_MODULE_TYPE == GPS_UM220翻译为TRUE
2. 解决
将头文件使用在同一个头文件中,凡是涉及到头文件应用的文件必须全部包含此头文件
分类:
C语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律