Forum: Compiler & IDEs kennt c99 kein asm?


von Corny (Gast)


Lesenswert?

avr-gcc -std=c99 ...
  asm volatile ("nop"); ---> 'asm' undeclared (first use in this 
function)

von Corny (Gast)


Lesenswert?

int main (void)
{
__asm volatile ("nop"); // bei -std=c99 __asm schreiben 
http://stackoverflow.com/questions/755457/asm-in-c-gives-an-error-with-std-c99
return;
}

Ah, hab die Lösung, man muss es bei c99 so machen:


int main (void)
{
__asm volatile ("nop"); // bei -std=c99 __asm schreiben 
http://stackoverflow.com/questions/755457/asm-in-c-gives-an-error-with-std-c99
return;
}



und es ist auch kompazibel zu code wo jemand kein -std=c99 nimmt

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Corny schrieb:
> Ah, hab die Lösung, man muss es bei c99 so machen:

Auch bei -std=c89.  Nur bei den "GNU"-Versionen geht es auch ohne
Unterstriche (-std=gnu89, -std=gnu99).

Die führenden Unterstriche schieben den entsprechenden Bezeichner in
den implementation namespace.  Damit darf GCC ihn auch dann noch
offerieren, wenn er auf eine strikte Übereinstimmung mit dem Standard
achten soll.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.