结构体声明,使不同子文件调用用一个结构体的问题请教

2019-12-21 12:09发布

在改一个现有工程,在main.h中定义了一下结构体
typedef struct  sensor_data
{
        signed short int  X;
        signed short int  Y;
        signed short int  Z;
};
typedef struct  sensor_data SENSOR_DATA;

SENSOR_DATA MagClabriteMAX;
SENSOR_DATA MagClabriteMIN;
SENSOR_DATA AccClabriteMAX;
SENSOR_DATA AccClabriteMIN;

如何声明让这些变量在其他子文件中也能使用。
在其他子文件中的.h文件中我做了如下定义
typedef struct  sensor_data SENSOR_DATA;

extern SENSOR_DATA MagClabriteMAX;
extern SENSOR_DATA MagClabriteMIN;
extern SENSOR_DATA AccClabriteMAX;
extern SENSOR_DATA AccClabriteMIN;
编译没有问题,但是在使用中
MagClabriteMAX.X = ONE;就报错
stmflash.c(27): error:  #70: incomplete type is not allowed
针对这个问题请教一下大家
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
陶新成
2019-12-22 11:14

我专门为全局变量建立一个文件夹,在主程序里做一下#define   QJ_BZ声明,其他子文件直接调用,问题就能解决了
#ifdef   QJ_BZ

#define  QJ_EXT

#else

#define  QJ_EXT extern
#endif

struct  sensor_data
{
        signed short int  X;
        signed short int  Y;
        signed short int  Z;
};

QJ_EXT struct sensor_data MagClabriteMAX;

一周热门 更多>