2009-05-31 7 views
0

Je fais une petite application en C et je veux définir une struct. Je l'ai fait:Problème pour définir une structure

 
typedef struct { 
    ITEM element[TAILLE_TAMPON]; 
    sem_t mutex, attendreVide, attendrePlein; 
    int ptEntree, ptSortie; 
} TAMPON; 

mais j'ai une erreur quand je construit mon projet avec ARTICLE Est-ce dû à un problème avec l'inclure?

  • stdio.h
  • stdlib.h
  • time.h
  • semaphore.h
  • pthread.h
  • "psleep.h"

« PSLEEP. h "inclure" unistd.h "

Merci Pour votre aide.

+2

Vous devez inclure l'erreur dont vous parlez. – dwc

+0

Quelle erreur obtenez-vous? – Zifre

+2

Comment avez-vous déclaré le type d'ITEM? –

Répondre

2

Non, ce n'est pas du tout à cause des inclusions. Compte tenu de ce que vous nous avez montré, c'est parce que ITEM n'est pas un type défini.

+1

bien, oui, c'est probablement dû à ITEM n'étant pas un type défini ... car il n'a pas inclus où il a été défini. –

+0

Mon erreur provient de la définition de ITEM. J'ai oublié de faire un typedef enum {...} ITEM; Je pensais que c'était un problème avec la structure. Merci de votre aide. –

4

Il semble que dans l'un de vos en-têtes, le type d'élément ait été déclaré, bien que vous deviez fournir plus d'informations pour être sûr. Assurez-vous que #include le fichier qui définit la structure ITEM.

0

L'élément doit être déclaré avant le TAMPON. Avez-vous peut-être essayé de le déclarer après le TAMPON?

Assurez-vous que votre ordre d'inclusion garantit que les types de structure dont vous avez besoin pour définir d'autres structures sont placés avant les structures qui s'y réfèrent. Par exemple, si vous avez une structure BOX_OF_TAMPONS qui utilise TAMPON, vous devez déclarer BOX_OF_TAMPONS après TAMPON.

Questions connexes