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. 解决
将头文件使用在同一个头文件中,凡是涉及到头文件应用的文件必须全部包含此头文件