Joachim ... schrieb:
>>Vielleicht einfach mal ALLES in ein File kopieren(/posten).
> Das ist genau das was ich nicht möchte.
>
>>Mit 'extern int8_t selectPID1;' sagst du zwar, das die Variable irgendwo >anders
> erklärt wird, aber irgendwo musst du main.h schon inkludieren.
> Hm. Das heißt, ich müßte dann im entsprechenden C-File, hier also
> PIDControl.c main.h inkludieren...
Nein!
Aber es muss ein C-File geben, in dem zb deine main() ist.
Und in die müsstest du main.h inkluden.
Aber eigentlich ist auch das der falsche Weg. Denn wenn ich mich an der
Namensgebung orientiere, dann gehört ja eine Variable "selectPID1 "
logisch gesehen zur PIDControl. Also muss sie dort auch rein
Datei PIDControl.h:
1 | void selectPID(void);
|
2 | extern int8_t selectPID1;
|
Datei PIDControl.c:
1 | #include "PIDControl.h"
|
2 |
|
3 | int8_t selectPID1 = 0;
|
4 |
|
5 | void selectPID(void) {
|
6 | switch(selectPID1)
|
7 | {
|
8 | ...
|
9 | ...
|
10 | }
|
Lass Variablen nach Möglichkeit immer bei dem Modul, zu dem sie gehören!
Es gibt keine Verpflichtung, dass die Definitionen externer Variablen an
einer Stelle zusammengefasst werden müssen. Dafür hast du ja einen
Linker.