2016-12-08 1 views
1

J'essaie d'utiliser une structure définie dans un fichier d'en-tête, mais la structure n'est pas reconnue par gcc. J'ai cherché des problèmes similaires, mais aucune des solutions a fonctionné ...Erreur: nom de type inconnu. Impossible de trouver la structure définie dans le fichier d'en-tête

c'est le code du fichier d'en-tête:

#ifndef _HTTPLIB_H_ 
#define _HTTPLIB_H_ 


#include <stdio.h> 

typedef struct req_buffer{ 
    char* page; 
    int type; //1 - html, 2 - comp 
    int socket; 
    Req_buffer * next; 
    time_t conn_time,response_time; 
}Req_buffer; 

#endif 

et l'erreur est:

unknown type name 'Req_buffer' 
+2

Vous ne pouvez pas utiliser 'Req_buffer' intérieur du' typedef', vous devez utiliser 'struct req_buffer * suivant;' – mch

+0

ouais il fait, mais pourquoi est-il comme ça? –

+0

Parce que lorsque le compilateur voit 'Req_buffer' dans la définition de la structure, il ne voit pas de définition que' Req_buffer' est un type (mais il sait que 'struct req_buffer' est un type - il a déjà vu cette information). –

Répondre

1

Req_buffer *next; vous référencez le symbole Req_buffer avant qu'il ne soit déclaré. essayez de le changer en:

struct req_buffer* next;