我有一节课:
class systemcall
{
typedef struct
{
int pid;
int fptrCntr;
OpenFile openfileptrs[10];
}processTable[100];
public:
//other stuff...
}
我有一个会员功能
/* this function initializes the process table. */
void systemcall::initpTable()
{
int i = 0;
for ( i=0; i<100; i++ ) {
processTable[i].fptrCntr = 0;
}
}
第processTable[i].fptrCntr = 0;
行会出错:
systemcall.cc:86: error: expected unqualified-id before '[' token
我几乎拔掉了所有头发!任何想法为什么会这样?我甚至把结构放在systemcall.cc文件中,但没有用。
谢谢。
答案 0 :(得分:4)
在typedef
声明之前,您不希望processTable
,因为您声明了一个对象,而不是一个类型。在将processTable
定义为类型之后,您继续将其用作成员对象,这会使编译器感到困惑。
答案 1 :(得分:0)
试试这个:
class systemcall
{
struct ProcessTable
{
int pid;
int fptrCntr;
OpenFile openfileptrs[10];
};
ProcessTable processTable[100];
public:
//other stuff...
};