C中的typedef struct问题(非法使用此类型作为表达式)

时间:2010-08-02 07:36:00

标签: c struct typedef

  

可能重复:
  typedef stuct problem in C

你好

我正面临着我在C头文件中定义了一个结构:

typedef struct iRecActive{

    char iRecSID[32];
    unsigned char RecStatus;
    int curSel;

}iRecAcitve_t;

但是当我在另一个文件中使用相同的结构时,编译器会给出一些错误:

错误C2275:'iRecActive_t':非法使用此类型作为表达式         d:\ project \ project original \ mirec2pc v1.0 \ httpapp \ httpapplication.h(15):参见'iRecActive_t'的声明

如果有人能帮助我,我将不得不承担责任

此致

Umair

2 个答案:

答案 0 :(得分:2)

嗯,您可以在问题和代码中检查拼写。您似乎已将其声明为iRecAcitve_t但使用iRecActive_t

答案 1 :(得分:1)

这意味着您已经使用了编译器期望的类型名称......其他内容。

例如:

iRecActive_t *thing = iRecActive_t; // compiler expects new iRecActive_t()

if (iRecActive_t) {} // compiler expects an expression

正如其他人所说,你需要张贴它抱怨的行(httpapplication.h的第15行)

修改

iRecActive_t iRecActiveObj[4];似乎是合法的,在这种情况下,它可能 之前的那条线让编译器感到困惑。例如:

if (thingOne ==                     // oops
    iRecActive_t iRecActiveObj[4];