Problemer med header filer
Jeg har lavet en header fil (mystructs.h) som indeholder følgende:#define STACK_SIZE 1024
struct tkb {
void *(*start_routine) (void *);
void *arg;
jmp_buf tilstand;
int stak[STACK_SIZE];
};
struct list {
struct tkb *thread;
struct list *previous;
struct list *next;
};
I en fil (test1.c) inkludere jeg denne fil:
#include "mystructs.h"
der medfører at jeg frit kan bruge tkb og list.
I en anden fil (test2.c) inkludere jeg test1.c:
#include "test1.c"
der medfører at jeg kan bruge de funktioner jeg har skrevet i test1.c plus de structures jeg har skrevet i "mystructs.h".
Men er det god kodestil at test2.c kun kan bruge mystructs.h igennem test1.c?
Jeg har prøvet i test2.c både at inkludere test1.c og mystructs.h men det giver en fejl:
gcc -g -Wall -o test2 test2.c
In file included from test2.c:5:
mystructs.h:7: error: redefinition of `struct tkb'
mystructs.h:15: error: redefinition of `struct list'