如题,最近在写一段驱动代码的时候发现了一个知识盲区,恳请大佬指点迷津。
首先是定义了一个bsp.h的头文件,文件内容如下:
#ifndef __BSP_H__
#define __BSP_H__
#include "main.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct
{
uint16_t wId; /**< Layer ID for this component, NEVER MODIFY! */
void * pPalFelicaDataParams; /**< Pointer to palFelica parameter structure. */
}phFelica;
extern phFelica mFelica;
#ifdef __cplusplus
} /* Extern C */
#endif
#endif
/**
* @}
*/
/************************ (C) COPYRIGHT LBD Tech *****END OF FILE****/
然后定义了另一个文件SimUART.c,内容如下:
#include "SimUART.h"
void vSimUARTSendData(phFelica *pDataParams)
{
pDataParams->wId = 1;
}
/**
* @}
*/
/************************ (C) COPYRIGHT LBD Tech *****END OF FILE****/
SimUART.h内容如下:
#ifndef __SIMUART_H__
#define __SIMUART_H__
#include "main.h"
#include "bsp.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
void vSimUARTSendData(phFelica *pDataParams);
#ifdef __cplusplus
} /* Extern C */
#endif
#endif
/**
* @}
*/
/************************ (C) COPYRIGHT LBD Tech *****END OF FILE****/
一编译就报错了,Error[Pe020]: identifier "phFelica" is undefined 。
但这个结构体已经定义过了,为什么会提示没定义呢?百思不得解
|