Servus, ich möchte mein Programm portabler machen. Will irgendwie nicht so richtig funktionieren.
1 | //file1.h Prototypen
|
2 | #ifndef FILE1_H
|
3 | #define FILE1_H
|
4 | extern void x_set(void); |
5 | extern void x_get(void); |
6 | extern void x_clear(void); |
7 | ...
|
8 | #endif
|
9 | |
10 | //file1.c Definition
|
11 | #include "file1.h" |
12 | void x_set(void){} |
13 | void x_get(void){} |
14 | void x_clear(void){} |
15 | ...
|
16 | |
17 | //file2.h neue Deklaration, Namensgebung
|
18 | #ifndef FILE2_H
|
19 | #define FILE2_H
|
20 | |
21 | #ifdef FILE1_H
|
22 | #include "file1.h" |
23 | #define y x
|
24 | #else
|
25 | #error "You must use either FILE1_H or ... define!"
|
26 | #endif
|
27 | |
28 | void test(void); |
29 | |
30 | extern void y_set(void); |
31 | extern void y_get(void); |
32 | extern void y_clear(void); |
33 | ...
|
34 | #endif
|
35 | |
36 | |
37 | //file2.c Funktionen Aufruf
|
38 | #include "file2.h" |
39 | void test(void){ |
40 | y_set(); //oder x_set() sollte hier gehen |
41 | y_get(); |
42 | y_clear(); |
43 | }
|
Wie könnte man mithilfe des Präprozessors die Namensgebung schlau ändern? Oder sollte man immer den kompletten Namen ersetzen:
1 | #define y_set x_set
|
2 | #define y_get x_get
|
3 | #define y_clear x_clear
|