C avant la déclaration de la structure d'en-tête
Je suis en train de passer struct
pointeur de fonction. J'ai un typedef
dans fichier1.h, et que vous voulez pour n'inclure que les en-tête fichier2.c, parce que fichier2.h seulement besoin de pointeur. En C++, je voudrais juste écrire comme je l'ai fait ici, mais en utilisant le C99, il ne fonctionne pas. Si quelqu'un a des suggestions pour passer struct
pointeur sans définition complète, il serait très apprécié. Le compilateur gcc.
fichier1.h
typedef struct
{
...
} NEW_STRUCT;
fichier2.h
struct NEW_STRUCT;
void foo(NEW_STRUCT *new_struct); //error: unknown type name 'NEW_STRUCT'
fichier2.c
#include "file2.h"
#include "file1.h"
void foo(NEW_STRUCT *new_struct)
{
...
}
"il ne fonctionne pas." l'Expliquer. Avez-vous obtenez une erreur du compilateur? une erreur de l'éditeur de liens? un moment de l'exécution de crash? Ce qui s'est passé?
Désolé, j'ai oublié que. Il ne se compile pas, ni comme ça, ni si j'ajoute
Désolé, j'ai oublié que. Il ne se compile pas, ni comme ça, ni si j'ajoute
struct
à l'argument de fonction, alors la variation de l'erreur de "fonction" foo "type d'argument missmatch".OriginalL'auteur PovilasG | 2013-07-28
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez juste à le nom de votre structure, et de faire une déclaration anticipée d'elle et après re typedef.
Premier fichier:
Deuxième fichier:
OriginalL'auteur Joyas
Vous pouvez essayer ceci:
fichier1.h
fichier2.h
fichier2.c
OriginalL'auteur lgnom