Fork me on GitHub

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. 解决

将头文件使用在同一个头文件中,凡是涉及到头文件应用的文件必须全部包含此头文件

posted @ 2022-04-15 16:55  一地鸡毛-  阅读(165)  评论(0编辑  收藏  举报