mikrocontroller.net

Forum: Compiler & IDEs Array initialisieren mit Define-Konstante nicht erlaubt?


Autor: X. H. (shadow0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Darf man das wirklich nicht, oder warum krieg ich nen Fehler?

#define AAA 100;
.
.
.
uint8_t array[]={AAA, AAA, AAA, AAA};

compiler: Syntax error before ;

------------------

Hier Test-Prog:

#include <avr/io.h>

#define AAA 100;



int main (void) {

//uint8_t array[]={AAA, AAA, AAA, AAA};
uint8_t array[]={100, 100, 100, 100};  //Nur so klappt es, nicht mit dem 
Auskommentierten...


   while(1)
   {

     //Mach was...


   }


   return 0;
}

Autor: T.v.B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm das Semikolon hinter der 100 weg, dann sollte es klappen.

#define AAA 100

Gruß
T.v.B.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach doch selbst mal die Textersetzung die das #define bewirkt:

Aus
define AAA 100;
uint8_t array[]={AAA, AAA, AAA, AAA};

wird
uint8_t array[]=[100;, 100;, 100;, 100;};

Siehst du jetzt den Fehler?


Autor: X. H. (shadow0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aaaahhh, ja, danke.
Hab es einfach nicht bemerkt, weil natürlich beim Error nicht aufs 
Define verwiesen wurde hab ich den Fehler auch explizit in dieser Zeile 
gesucht und nicht drann gedacht dass es ein Folgefehler sein kann der 
aus einem define/Makro entstand)

Das ; hatte ich aus Versehen gewohnheitsmäßig gemacht

-- Text geändert (hier sah der Syntax auch nicht so gut aus ;-) )

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*nachtret
>(weil natürlich beim Error nicht aufs Define verwiesen wurde
Warum auch?

>das ; aus Gewohnheit gemacht.
Sollte man in einer Zeile, die mit "#define" anfängt halt nicht 
machen...


Autor: X. H. (shadow0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rahul, der Trollige wrote:
> *nachtret
>>(weil natürlich beim Error nicht aufs Define verwiesen wurde
> Warum auch?
[...]

Ja, ist klar. Weil der Compiler ja den Text nach dem Präprozessor erst 
erhält und nur davon die Fehler ankreiden kann...

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ja, ist klar
>> *nachtret

Autor: X. H. (shadow0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/me zieht sich n Vokalbelheft unter die Hose :P


/me => Kennt ihr ja von Mirc :P

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.