Ik ben bezig onder C een programmaatje te schrijven, en ik ben tegen het probleem aangelopen dat een typedef alleen maar geldig is voor de header file waarin die is gedefinieerd. Ik heb ook al geprobeerd om de typedef in de andere header file op te nemen, maar dan geeft de GCC compiler een 'redefine' foutmelding.
De code die hieronder staat (inhoud van 4 (!) files) heeft hetzelfde probleem als ik in mijn programma heb. Heeft iemand enig idee hoe ik dit kan oplossen? Liefst zonder nog meer files aan het programma toe te voegen. De foutmeldingen die de compiler gaf staan helemaal onder aan het programma.
Thx!
De code die hieronder staat (inhoud van 4 (!) files) heeft hetzelfde probleem als ik in mijn programma heb. Heeft iemand enig idee hoe ik dit kan oplossen? Liefst zonder nog meer files aan het programma toe te voegen. De foutmeldingen die de compiler gaf staan helemaal onder aan het programma.
Thx!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| // ### Header File of main.c ###
typedef unsigned short opt;
#define CLIENT_DC
#define SERV_DC 2
#define LOST_CON 4
void test(opt var1);
// ### Main C File ###
#include "main.h"
int main(void) {
// Do something
TestMe(LOST_CON);
return 0;
}
void test(opt var1) {
// Do something
if (var1 == LOST_CON) {
exit(0);
} else {
exit(1);
}
}
// ### Include File of inc.c ###
void TestMe(opt var1);
// ### inc.c File ###
#include "inc.h"
void TestMe(opt var1) {
// Do something
test(var1);
}
###################
In file included from inc.c:3:
inc.h:3: parse error before "var1"
inc.c:5: parse error before "var1"
inc.c: In function `TestMe':
inc.c:7: `var1' undeclared (first use in this function)
inc.c:7: (Each undeclared identifier is reported only once
inc.c:7: for each function it appears in.) |