c - 错误:“不允许不完整的类型”,IAR 编译器
Posted
技术标签:
【中文标题】c - 错误:“不允许不完整的类型”,IAR 编译器【英文标题】:c - Error: "incomplete type is not allowed" , IAR compiler 【发布时间】:2017-03-05 04:58:56 【问题描述】:请指教,怎么了?
在.h
中struct
uint8_t time;
uint8_t type;
uint8_t phase;
uint8_t status;
Raw_data_struct;
typedef struct Raw_data_struct Getst_struct;
void Getst_resp(Getst_struct Data);
在.c
中void Getst_resp(Getst_struct Data) //Here Error: incomplete type is not allowed
;
【问题讨论】:
【参考方案1】:错误是由于声明“struct Raw_data_struct”时的混合造成的。你可以看看typedef struct vs struct definitions [duplicate]的帖子。
要声明你的结构,你必须使用:
struct Raw_data_struct
uint8_t time;
uint8_t type;
uint8_t phase;
uint8_t status;
;
而不是:
struct
uint8_t time;
uint8_t type;
uint8_t phase;
uint8_t status;
Raw_data_struct;
如果你想同时声明struct和typedef,你必须使用:
typedef struct Raw_data_struct
uint8_t time;
uint8_t type;
uint8_t phase;
uint8_t status;
Getst_struct;
【讨论】:
以上是关于c - 错误:“不允许不完整的类型”,IAR 编译器的主要内容,如果未能解决你的问题,请参考以下文章