Präprozessor frage

Gast #1352944
hi!
ich habe gerade leider keinen µC zur hand an dem ich das "ausprobieren" 
kann, übersetzt der compiler diese Anweisung richtig oder wird das nicht 
gehen?

Compilieren lässt es sich zumindest mal, wenn es aber nachher im µC 
nicht läuft suche ich später ewig einen Fehler
1
#if (ANZAHL > 1)
2
  uc8Portarray[1]  = 0x66;
3
#endif

Ziel ist es, wenn das Array uc8Portarray mehr als 1 Feld hat, nur und 
ausschließlich das zweite Feld auf 42 zu setzen, geht das so?

"ANZAHL" ist hierbei ein define welches ich beim compilieren mit 
ensprechender Versionsnummer ändere.
Gast #1352963
>...aber die Präporzessor-Anweisung müsste funktionieren, oder?

Wieso nicht. Die Frage dürfte lauten: Was für ein Wurm sitzt
dir da quer im Hirn? Soll ANZAHL sich im Programm ändern?
Wenn nein, wozu der Kram? Kann man doch auch so im Quellcode
eintragen.
Gast #1352989
>Wenn nein, wozu der Kram? Kann man doch auch so im Quellcode
>eintragen.

siehe oben!
>>"ANZAHL" ist hierbei ein define welches ich beim compilieren mit
>>ensprechender Versionsnummer ändere.

Durch die defines ist es eben einfacher alle nötigen Parameter nur durch 
setzen der Versionsnummer zu ändern, ich ändere 1x die Versionsnummer 
und ändere dadurch gleichzeitig ANZAHL, DAUER, LAENGE....

Wieso es nicht funktionieren soll?
Keine Ahnung! ich habe das eben noch nie gemacht und kann es wie bereits 
gesagt im Moment nicht testen!
Wenn ich die Hardware dann wieder da habe denke ich vlt. nicht mehr an 
diese Präprozessor Anweisung und wundere mich warum das Programm nicht 
läuft!
Persönliche Seite #1353010
n00b schrieb:
> hi!
> ich habe gerade leider keinen µC zur hand an dem ich das "ausprobieren"
> kann, übersetzt der compiler diese Anweisung richtig oder wird das nicht
> gehen?

Wozu braucht man da einen µC?

Der Präprozessor läuft duch nicht auf dem µC, sondern in deinem PC.

> Compilieren lässt es sich zumindest mal, wenn es aber nachher im µC
> nicht läuft suche ich später ewig einen Fehler

Schau dir das Präcompilat an.

In GCC wird es zB mit -save-temps nicht gelöscht und erhält die Endung 
.i für C bzw. .ii für C++.

Evtl ist dann auch -g3 hülfreich.

Johann

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.