Déclarer struct dans le fichier d'en-tête
Je veux déclarer une structure dans un fichier d'en-tête donc je peux l'utiliser dans mon fichier source. Ce que je fais mal? Je veux être en mesure d'accéder à mon struct à partir de n'importe quelle fonction.
info.h
#ifndef INFO_H
#define INFO_H
typedef struct info
{
int mem_size;
int start_loc;
int used_space;
int free_space;
} INFO;
#endif
test.c
#include <stdio.h>
#include <stdlib.h>
#include <info.h>
#define F_first 1
#define F_last 2
#define F_data_int 3
#define F_data_char 4
#define F_data_float 5
#define F_print 6
void * f(int code);
int main() {
INFO in;
in.mem_size = 8;
f(F_last, 0,0);
return(0);
}
void * f(int code) {
printf("%d", in.mem_size);
}
Vous voulez probablement
gotcha. J'ai pensé "#include <info.h> était la même chose
Il serait utile si vous a montré l'exact du message d'erreur compilateur vous, car le " fichier "info.h" pas trouvé d'erreur " aurait confirmé ce que les gens sont des hypothèses.
Je suis en désaccord avec ce qui est trop localisé. Il a résolu un problème que j'ai.
#include "info.h"
dans votre test.c
.gotcha. J'ai pensé "#include <info.h> était la même chose
Il serait utile si vous a montré l'exact du message d'erreur compilateur vous, car le " fichier "info.h" pas trouvé d'erreur " aurait confirmé ce que les gens sont des hypothèses.
Je suis en désaccord avec ce qui est trop localisé. Il a résolu un problème que j'ai.
OriginalL'auteur Nelson.b.austin | 2013-02-05
Vous devez vous connecter pour publier un commentaire.
Remplacer:
avec,
Avec
<>
compilateur recherches uniquement pour le fichier d'en-tête dans predesignated en-tête de dossier. Ce est utilisé pour la bibliothèque standard fichiers d'en-tête.Avec
""
compilateur recherche tout d'abord le fichier d'en-tête dans le répertoire local où votre .c est situé le fichier. Ce est utilisé pour l'utilisateur défini fichiers d'en-tête.OriginalL'auteur Alok Save
Oui... Vous devez utiliser
#include "info.h"
par opposition à#include <info.h">
personnalisé en fonction des en-têtes. Habituellement, ils ne font pas partie du système de direction qui se trouvent normalement dans le/usr/include
répertoire sous Unix/Linux.OriginalL'auteur Rico