Kompiler note bei Makro - Was ist falsch?

Gast
Hi!

Danke für die schnellen Antworten!

Die Meldungen davor und danach hatten in keinster Weise etwas mit diesem 
Error zu tun, da ging es um const-Qualifier, die verloren gingen:
1
discards ‘const’ qualifier from pointer target type

Habe testweise die Klammern um resultCode entfernt. Seitdem bliebt die 
Meldung aus.
1
#define DO_IF_ERROR(resultCode)                         if(RESULT_OK > resultCode)

Grüße
Arct
Moderator Persönliche Seite
eProfi schrieb:
> Die Klammer würde ich
> drinlassen.

Auf jeden Fall! Makroargumente sollten im Makro immer geklammert werden, 
wenn das syntaktisch möglich ist, ansonsten können da bei unbedarfter 
Verwendung seltsame Dinge passieren.

Arct schrieb:
> Die Meldungen davor und danach hatten in keinster Weise etwas mit diesem
> Error zu tun

Doch, haben sie. Deshalb steht doch da "in definition of macro …".

Wenn du nicht gewillst bist, uns ein Stückchen mehr vom "rundrum" zu 
zeigen, wird dir wohl keiner helfen können.
Arct schrieb:
> Die Meldungen davor und danach hatten in keinster Weise etwas mit diesem
> Error zu tun, da ging es um const-Qualifier, die verloren gingen:

Meldungen des Compilers, die so anfangen:

„note:“

sind keine Fehlermeldungen, sondern eine erklärende Ergänzung für die 
direkt davor stehende eigentliche (Fehler-)meldung.

Oliver
Gast
Arct schrieb:
> Habe testweise die Klammern um resultCode entfernt. Seitdem bliebt die
> Meldung aus.

Dann macht dein Code jetzt wahrscheinlich was völlig anderes als 
gewünscht.

Arct schrieb:
> Die Meldungen davor und danach hatten in keinster Weise etwas mit diesem
> Error zu tun

Das kann nicht sein. Du hast eine halbe Fehlermeldung gepostet. Die 
taucht nicht einfach so halb auf, da gehört noch was zu.

Arct schrieb:
> Die Meldungen davor und danach hatten in keinster Weise etwas mit diesem
> Error zu tun, da ging es um const-Qualifier, die verloren gingen:

Vielleicht passierte dieser Fehler ja im Makro-Argument?! Dann ändern 
die Klammern aber nichts. Oder hast du den "const"-Fehler behoben und 
gleichzeitig die Klammern entfernt?

Die Klammern solltest du sowieso wieder einfügen.
Gast
Hallo!

Ja, ihr habt offensichtlich recht! Habe die Klammern wieder hinzugefügt 
und es geht. Die Meldung bezog sich dann wirklich auf den Fehler davor, 
mit dem const-Qualifier, denn DO_IF_ERROR wurde mit eben dieser Funktion 
aufgerufen, also DO_IF_ERROR(funktion(x,y,z)) { ...}

Dake & Grüße
Arct

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 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.