Forum: Compiler & IDEs suche so etwas wie ein externes Define


von Dirk (Gast)


Lesenswert?

Hallo,

Ich habe mir einige Routinen geschrieben, die 7-Segment-Anzeigen über 
I2c ansteuern, funktioniert auch alles...

Diese Routinen will ich jetzt als Include in mehreren Programmen nutzen. 
Die Anzahl der Ziffern soll dabei aber unterschiedlich sein können.

Deshalb hatte ich zuerst ein #define digits 3. in der .h Datei, der 
Routinen.

Da sich aber die Anzahl von Projekt zu Projekt ändert, ist das ja etwas 
"doof", da ich ja dann immer vor dem Compilen das (immer gleiche) 
Include ändern müsste.

Wie kann ich in der main (in dem jewieligen Hauptprogramm) so etwas 
(ähnliches) wie #define machen, was dann in der .h bentutzt wird.

(Ich bräuchte so was ähnliches wie extern - nur halt für defines ;) )

von Stefan (Gast)


Lesenswert?

Mach in die Linker Optionen ein define mit rein (so wie auch F_CPU 
definiert ist):

-DNUM_DIGITS = 3

Stefan

von Walter (Gast)


Lesenswert?

in den Linkeroptionen hilft das natürlich nicht,
du meinst wohl in den Compileroptionen ...

von zonendoedel (Gast)


Lesenswert?

Moin,

was hindert dich das

#define digits 3.
vor das
#include "blafasel.h"

zu schreiben?


Und wech...

von Walter (Gast)


Lesenswert?

weil "blafasel.h" vermutlich nicht nur in main, sondern auch in 
"blafasel.c" included wird

von zonendoedel (Gast)


Lesenswert?

Moin,

Dirk schreibt, dass er seine Routine per include einbindet.
Von mir aus also #include "blafasel.c"
Das macht aber keinen Unterschied...

Das
#define digits 3.
vors das
#include "blafasel.c"

und gut ist.

Und wech...

von Gast (Gast)


Lesenswert?

Nur weil etwas technisch/softwaretechnisch geht, muss man es ja noch 
nicht machen.

Meine (auch nicht wirklich elegante) Lösung wäre, einfach den Quellcode 
von "blafasel.c" und "blafasel.h" in das neue Projekt zu kopieren und 
dann anzupassen...Wenn man "blafasel.x" als fertig ansieht stört das 
nicht, und wenn man an "blafasel.x" noch Änderungen vornimmt, dann muss 
man diese halt "bewusst" neu in seine Projekte kopieren. Vorteil daran 
ist, dass eine Änderung in "blafasel.x" nicht ein altes Projekt 
zerschiesst, weil man eine unkompatible Änderung vorgenommen hat (bzw. 
merkt man es beim probieren hoffentlich sofort).

Gruß,
Gast.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.