...pontosan azt linkeltem, amire micsa válaszolt. Egyébként meg, ha azt hiszed, hogy például ez egy kulturált hozzászólás, akkor a Te fejedben is irtó nagy baj van.
Ilyet aztán végképp nem állítottam
Az ott elhangzottakat továbbra is fenntartom, egy tanulatlan, hazug csürhe vagytok, akik nem csak buták, de ami nagyobb baj, hogy nem is akartok tanulni.
de szemben veled, ez a tanulatlan hazug csürhe mégsem annyira buta mint te, hogy érvelés helyett kizárólag rágalmaz és személyeskedik :)
FACEPALM. És az a csere mégis mit csinál szerinted, ha nem pont ezt, te nagyokos? (Ne válaszolj, költői kérdés.)
DE ÚGYSE FORDUL LE! Lásd a bemásolt hibaüzenetet, ami bizonyítja, hogy HAZUDTÁL. De még ha kijavítod a szintaktikai hibát és megadsz egy rakat kapcsolót a gcc-nek, és úgy valahogy lefordítod, MÉG AKKOR IS HIBÁS az eredmény.
Tényleg nem tudom, minek válaszolok egy olyannak, aki HAZUDOZIK össze-vissza, KÉPTELEN OLVASNI, és jól láthatóan meghaladja a magyar nyelvű szövegértés az értelmi képességeit.
Ágyő!
Várjá várjá, haladjunk lépésről lépésre a kedvedért. Fogjuk elsőnek a micsa által adott megfejtést, módosítás nélkül:
$ echo 'void handler(void *p) __attribute__((interrupt));' > bzt.c
aztán fogunk még !egy! sort, az előző forward declaration / function prototype mellé. Semmi dirt magic, csak szép lazán:
$ echo 'void handler(void *p) {}' >> bzt.c
Majd leszünk olyan gonoszak, hogy lefordítjuk ezt a kódot a következő módon:
$ gcc -mgeneral-regs-only -c -Wall bzt.c
Se hiba, se warning, se error, semmi :) pontosabban majdnem semmi, lett egy szép "bzt.o". Elviekben idáig már nem kellett volna eljutnunk, de ha már valahogy létrejött, akkor megnézzük, ott leledzik az a fránya iretq vagy sem :
$ objdump -d bzt.o | grep -c iretq
1
Mielőtt valamilyen csavaros módon kiderülne, hogy hazudok, meg mindenki hazudik és az ettől független "-mgeneral-regs-only" rakja oda az iretq -t ami nem is létezik, mert ez a kód le sem fordulhat, megnézzük mi történik ha nincs ott micsa csicsa sora, megcsináljuk újra az egészet nélküle:
$ echo 'void handler(void *p) {}' > bzt2.c
$ gcc -mgeneral-regs-only -c -Wall bzt2.c
$ objdump -d bzt2.o | grep -c iretq
0
Lááám, az iretq eltűnt, de azért lessük meg, mi lett helyette:
$ objdump -d bzt2.o | tail -1
e: c3 ret
Szóval, mit látunk? Micsa csicsa sora iretq-t generál, amit a te állításod szerint csak és kizárólag assembly nyelven lehetséges megoldani, c -ben nem. Erre tessék az eredeti cáfolathoz