在我的c ++应用程序中,我有一个aaa.h文件,里面有这个定义:
typedef struct
{
int a;
int b;
} CCC;
typedef struct _DDD
{
unsigned int e;
CCC cccArray[100];
} DDD;
在我的aaa.cpp中我写道:
#include "aaa.h"
DDD * dddPtr
但后来我收到了这个错误: 错误c2061:语法错误:标识符'DDD'
你可以帮忙解决这个问题吗?
感谢
答案 0 :(得分:1)
对于C ++,您不需要typedef
'ed struct
- 只需执行此操作:
struct CCC
{
int a;
int b;
};
struct DDD
{
unsigned int e;
CCC cccArray[100];
};
和此:
#include "aaa.h"
DDD * dddPtr = NULL; // or = new DDD;
答案 1 :(得分:1)
首先:您应该使用分号;
终止声明。
第二:在您的情况下,C ++中不需要typedef
,只需定义class
es或struct
ures:
struct CCC
{
int a;
int b;
};
struct DDD
{
unsigned int e;
CCC cccArray[100];
};
int main()
{
DDD * dddPtr;
}
编辑:此外,您应该通过为CCC
和DDD
提供合适的构造函数来确保每个成员都已正确初始化。