2010-08-02 2 views
0

Possible Duplicate:
typedef stuct problem in Ctypedef problème stuct en C (utilisation illégale de ce type comme une expression)

Bonjour à

Je suis face que j'ai-je défini une structure dans un fichier d'en-tête C:

typedef struct iRecActive{ 

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

}iRecAcitve_t; 

mais lorsque j'utilise la même structure dans un autre fichier, le compilateur donne une erreur:

erreur C2275: 'iRecActive_t': utilisation illégale de ce type en tant qu'expression d: \ projet \ projet original \ mirec2pc v1.0 \ HTTPApp \ httpapplication.h (15): voir la déclaration de 'iRecActive_t'

je serais obligé si quelqu'un pouvait me aider

Cordialement

Umair

+2

Publiez le code qui provoque l'erreur. –

+0

Vous avez encore mal orthographié 'iRecAcitve_t' malgré le fait que vous avez accepté cette réponse ici: http://stackoverflow.com/questions/3385533/typedef-stuct-problem-in-c – paxdiablo

+0

Je suis désolé d'avoir changé l'orthographe mais j'ai oublié de changer est ici. Après avoir changé l'orthographe, j'obtiens ce problème. – Omayr

Répondre

2

Eh bien, vous pouvez vérifier l'orthographe, à la fois dans la question et dans le code. Vous semblez l'avoir déclaré comme iRecAcitve_t mais utiliser iRecActive_t

+0

bien. Je suis désolé de ne pas avoir corrigé l'orthographe de la question mais je l'ai déjà modifiée dans mon code. Mais après avoir modifié l'orthographe, le compilateur reconnaît iRecActive_t; en tant que structure, mais donne cette erreur particulière. Je ne comprends toujours pas pourquoi le compilateur fait ça? – Omayr

1

Cela signifie que vous avez utilisé le nom de type dans lequel le compilateur attend ... quelque chose d'autre.

Par exemple:

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

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

Comme d'autres l'ont dit, vous devez poster la ligne, il se plaint de (ligne 15 de httpapplication.h)

Modifier

iRecActive_t iRecActiveObj[4]; semble être légal , dans ce cas, il est probablement la ligne avant qui a confondu le compilateur. Par exemple:

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

iRecActive_t iRecActiveObj [4]; c'est la ligne pour laquelle le compilateur montre l'erreur correspondante – Omayr