日期:2014-05-16  浏览次数:20718 次

typedef 定义一个类型出错
各位好,刚才在定义一个类型的时候,感觉没有问题,可是在用gcc编译时,老是提示说定义
error: syntax error before "SEND_BUF_S" 真的不清楚哪里出问题了,各位帮忙看下,谢谢
!

我定义的如下:

typedef struct MSG_BUF {
long Des; ///< message type, must be > 0 .xxxx
int cmd; ///< data .
int Src;
int ret;
int NoChnl;
int fmt;
MSG_MEM mem_info;
FrameInfo_t frame_info;
SEND_BUF_S stStreamBuf;
} MSG_BUF;
/*-----------------------------------*/
其中 MSG_MSM 定义的是:
typedef struct _MSG_MEM{
unsigned long addr;
unsigned long size;
}MSG_MEM;
FrameInfo_t 定义的是:
typedef struct _FrameInfo{
int offset;
int serial_no;
int size;
int width;
int height;
int format;
int frameType;
unsigned int quality;
unsigned int flags;
unsigned int timestamp;
unsigned int temporalId;
int ref_serial[FMT_MAX_NUM];
}FrameInfo_t;

百思不得其解, 各位 帮忙下啊!!!!!谢谢了

------解决方案--------------------
SEND_BU_S上面不是一个FrameInfo_t嘛,但是FrameInfo_t的定义却是在下面的饿,这个就导致MSG_BUF会找不到结构体FrameInfo_t,你可以将两个结构体掉一下位置,这个是从你贴的这部分代码看的