mikrocontroller.net

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


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;) )

Autor: Stefan (Gast)
Datum:

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

-DNUM_DIGITS = 3

Stefan

Autor: Walter (Gast)
Datum:

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

Autor: zonendoedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

was hindert dich das

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

zu schreiben?


Und wech...

Autor: Walter (Gast)
Datum:

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

Autor: zonendoedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.