我在C中遇到以下问题: 我在头文件中为结构声明了一个typedef(" mep.h")
#ifndef MEP_H
#define MEP_H
typedef struct Mep_tag Mep;
<other stuff declared here>
#endif
我使用另一个包含&#34; mep.h&#34;的头文件(&#34; mep_types.h&#34;),定义结构&#34; Mep_tag&#34;并使用&#34; Mep&#34;类型名称:
#ifndef MEP_TYPES_H
#define MEP_TYPES_H
#include "mep.h"
#include "file1.h"
struct Mep_MsgElement_tag
{
const Mep * MsgCh;
};
struct Mep_tag
{
<stuff in here>
};
#endif
由于某些原因,当编译时,我收到以下错误: &#34; mep_types.h:错误:未知类型名称&#34;&#39; Mep&#39;&#34;。
但是,如果在&#34; mep.h&#34;我将typedef放在ifndef后面这样的......
typedef struct Mep_tag Mep;
#ifndef MEP_H
#define MEP_H
<other stuff declared here>
#endif
...&#34; Mep&#34;类型名称在&#34; mem_types.h&#34;。
中可见有人知道这会怎么样吗?