ISO C99 und ISR

OP #3024022
Lesenswert?

Moin!

Ich bekomme beim kompilieren die Warnung "Error  1: ISO C99 requires 
rest arguments to be used" ausgegeben.
Ich verwende einen XMEGA mit eingebundener interrupt.h.

Die betreffende Zeile betrifft die einzige ISR im Code:
1
ISR(TCC0_OVF_vect){
2
  
3
  }
Da ich diesen Fehler loswerden möchte und alle meine Suchen im Internet 
keine Lösung brachten frage ich hier mal nach.

Ich hoffe ihr könnt mir Tips geben.

Viele Grüße,
wastlB
#3024051
Lesenswert?

Frage 1:

kompilierst du überhaupt mit dem gcc?

Denn eigentlich steckt ja hinter ISR ein Makro, welches dann aus

ISR(TCC0_OVF_vect)

den tatsächlichen Funktionskopf erzeugt. Wenn bei dieser Expansion eine 
"Argumentliste" übrig bleibt, wie es deine Warnung zu suggerieren 
scheint, dann ist da irgendwas schief gelaufen.
Moderator Persönliche Seite #3024107
Lesenswert?

Karl Heinz Buchegger schrieb:

> kompilierst du überhaupt mit dem gcc?

Ja, macht er. ;-)
1
      if (argc + 1 == macro->paramc && macro->variadic)
2
        {
3
          if (CPP_PEDANTIC (pfile) && ! macro->syshdr)
4
            cpp_error (pfile, CPP_DL_PEDWARN,
5
                       "ISO C99 requires rest arguments to be used");
6
          return true;
7
        }

> Wenn bei dieser Expansion eine
> "Argumentliste" übrig bleibt, wie es deine Warnung zu suggerieren
> scheint, dann ist da irgendwas schief gelaufen.

Daher hätte ich ja auch gern ein komplettes, compilierbares Beispiel.
Moderator Persönliche Seite #3024111
Lesenswert?

Peter II schrieb:

> und woher weist du damit, das dieser code nicht auch in einem anderen
> compiler drin ist?

Weil es außerordentlich ungewöhnlich wäre, wenn jemand anders diese
reichlich eigenwillig anmutende Formulierung parallel erfunden hätte.

Außerdem sind wir im GCC-Forum, die angegebene ISR entspricht der
Syntax von AVR-GCC/avr-libc, und er schrieb auch was von interrupt.h.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren