Tool/software: TI C/C++ Compiler
Compiler: TI v5.2.5
Payload_Manager.c:
struct __attribute__((__packed__))ATEIS_Payload //payload { u32 Addr; u16 Cmd; u16 Len; u8 Data[]; // If the expression is a constant expression, it shall have a value greater than zero. 所以裡面不能填0 };
Payload_Manager.h:
typedef struct ATEIS_Payload ATEIS_Payload_s;
DNM_PktXcvr.c:
#include "Payload_Manager.h" ATEIS_Payload_s* pl_p = Payload_Manager_New(PAYLOAD_SIZE+dataLen); //incomplete type is not allowed
DNM_CmdHndlr.c:
#include "Payload_Manager.h" ATEIS_Payload_s* pl_p = NULL; //no problem pl_p = OSTaskQPend(0, OS_OPT_PEND_BLOCKING, &msgSize, &ts, &err); //wait for a message DNM_temp = DNMManager_Ctor(DNM_temp, &pl_p->Data[NAME], //pointer to incomplete class type is not allowed pl_p->Addr, //ditto *(u32*)&pl_p->Data[SN], //ditto *(u32*)&pl_p->Data[SUBMASK]); //ditto
I deliberately hide struct member in source file and only give enough information via header file.
I don't know why this doesn't work.
Thanks