Co to jest odpowiednik __declspec(naked)
w gcc/g ++? __declspec(naked)
jest faktycznie używany do deklarowania funkcji bez żadnego epilogu i prologu.Równoważnik __declspec (naga) w gcc/g ++
Odpowiedz
Uważam, że nie ma takiego odpowiednika w ostatnim GCC pod Linuxem. Kompilator emituje prologi i epilogi, jeśli jest to właściwe, i powinieneś pozostawić to decyzji. Może być całkiem niezła w prologach lub epilogach całkiem małe, a czasem nawet nieistniejące.
Można zakodować funkcję w zespole. Możesz też umieścić instrukcje asm w swojej funkcji.
I nie powiedziałeś, dlaczego chcesz to zrobić. Jaki jest twój cel i dlaczego dokładnie o to pytasz?
Mylisz się, ja sam kiedyś użyłem czegoś takiego, ale teraz nie pamiętam. – MetallicPriest
Zrobiłeś to z GCC? Strona, do której odwołuje się SigTerm, jest zgodna z tym, co powiedziałem: jeśli nie chcesz prologu ani epilogu z GCC i Linux (na maszynach docelowych x86 lub AMD64), użyj asm. –
Cóż, tak naprawdę jest, ale tylko dla niektórych (wbudowanych) architektur, jak sugerujesz się w komentarzu. – ninjalj
W niektórych architekturach gcc obsługuje atrybut o nazwie "nagi"; najnowszy gcc docs Mam tę listę architektur: ARM, AVR, MCORE, RX i SPU.
Jeśli używasz jednej z tych architektur (gcc daje ostrzeżenie, jeśli starają się go używać i nie jest obsługiwany), atrybut może być używany tak:
__attribute__ ((naked)) int fun()
{
}
Ostatnio na liście deweloperów gcc pojawiła się dyskusja na temat dodawania "nagiego" atrybutu jako bardziej ogólnej funkcji i próbowania obsługiwać go na więcej architekturach, ale oczywiście to nie pomaga :).]
- 1. heroku godaddy naga domena
- 2. Różnica między _declspec a __declspec?
- 3. Równoważnik DataTable w Javie
- 4. Równoważnik include() w HTML
- 5. Równoważnik "rzutu" w R
- 6. Równoważnik setdefault w Go?
- 7. Równoważnik NSMutableArray w C++?
- 8. Równoważnik dekodowania w postgresie
- 9. Równoważnik j w NumPy
- 10. Równoważnik "exec" w emacs * eshell *?
- 11. Równoważnik `__FILE__`,` __LINE__` w bashu
- 12. Równoważnik parse_url w grails/groovy?
- 13. Równoważnik UIApplication.shared.preferredContentSizeCategory w rozszerzeniu aplikacji
- 14. Równoważnik C# ObservableCollection w Javie
- 15. Równoważnik String.Format (.NET) w Javie?
- 16. Równoważnik FileSystemWatcher (.NET) w kakao
- 17. Równoważnik usleep() w jądrze CUDA?
- 18. Równoważnik obiecywania w języku C#
- 19. Czy ktoś mógłby wytłumaczyć __declspec (nagi), proszę?
- 20. Windows i C++: extern i __declspec (dllimport)
- 21. Co naprawdę robi kod "DECLDIR __declspec (dllexport)"?
- 22. typ zwrotu przed lub po __declspec?
- 23. Równoważnik Java dla .charCodeAt()
- 24. Równoważnik WPF właściwości AccesibleName
- 25. Równoważnik pętli zagnieżdżonej
- 26. Równoważnik gettimeday() dla Windows
- 27. Równoważnik "tego" wskaźnika
- 28. Pythona równoważnik Perl/Ruby || =
- 29. C# Równoważnik Java IdentityHashMap
- 30. MySQLi Równoważnik kodu MySQL
http://gynvael.coldwind.pl/?id=15 – SigTerm
@SigTerm Chciałam opublikować ten link, to fajny hack. – AusCBloke