¿Cuál es el equivalente a __declspec(naked)
en gcc/g ++? __declspec(naked)
se usa para declarar una función sin ningún epílogo y prólogo.Equivalente a __declspec (naked) en gcc/g ++
Respuesta
Creo que no hay tal equivalente con un GCC reciente en Linux. El compilador emite prólogos y epílogos cuando corresponda, y usted debe dejar esa decisión. Puede ser bastante bueno para hacer prólogos o epílogos bastante pequeños, o incluso a veces inexistentes.
Puede codificar su función en el ensamblaje. O puede poner declaraciones de ASM dentro de su función.
Y no dijiste por qué quieres hacer eso. ¿Cuál es tu objetivo y por qué preguntas exactamente?
Usted está equivocado, yo mismo una vez usé tal cosa, pero no puedo recordar ahora. – MetallicPriest
¿Lo hiciste con GCC? La página a la que hace referencia SigTerm está de acuerdo con lo que dije: si no quiere un prólogo o un epílogo con GCC y Linux (en máquinas de destino x86 o AMD64), use asm. –
Bueno, en realidad lo hay, pero solo para algunas arquitecturas (integradas), como se implica en un comentario. – ninjalj
En algunas arquitecturas, gcc admite un atributo llamado "desnudo"; el más reciente gcc docs He dado esta lista de arquitecturas: ARM, AVR, MCORE, RX y SPU.
Si está utilizando una de esas arquitecturas (gcc le dará una advertencia si intenta usarlo y no es compatible), el atributo puede ser utilizado de esta manera:
__attribute__ ((naked)) int fun()
{
}
[Recientemente se ha debatido un poco sobre la lista de desarrolladores gcc acerca de agregar el atributo "desnudo" como una característica más general, y tratando de admitirlo en más arquitecturas, pero obviamente eso no te ayuda :).]
- 1. Python simple naked objects
- 2. ¿Podría alguien explicar __declspec (desnudo) por favor?
- 3. ¿Hay un equivalente de g ++ a __declspec (novtable) de Visual Studio?
- 4. ¿A qué se amplía __declspec (uuid ("ComObjectGUID"))?
- 5. Diferencia entre _declspec y __declspec?
- 6. abortar() no está __declspec (NoReturn) en VS2010
- 7. Windows y C++: extern & __declspec (dllimport)
- 8. __declspec (dllimport/dllexport) y la herencia
- 9. ¿Qué es __declspec y cuándo debo usarlo?
- 10. Es necesario __declspec (dllexport) en los archivos cpp
- 11. ¿Equivalente a FileInputStream en J2ME?
- 12. Equivalente a InvokeRequired en WPF
- 13. Equivalente a GetTickCount() en Linux
- 14. equivalente a "touch" en scons?
- 15. ¿Equivalente a #define en Java?
- 16. Equivalente a "continuar" en Ruby
- 17. ¿Equivalente a assert.warning en mstest?
- 18. Equivalente a Double.doubleToLongBits en C#?
- 19. Equivalente a% ~ dp0 en sh
- 20. Equivalente a eval() en Groovy
- 21. ¿El uso de __declspec (novtable) en clases base abstractas afecta a RTTI de alguna manera?
- 22. Python equivalente a find2perl
- 23. C++ equivalente a java.lang.Integer.MIN_VALUE
- 24. MVC Equivalente a Page_Load
- 25. psycopg2 equivalente a mysqldb.escape_string?
- 26. Windows Equivalente a 'agradable'
- 27. MSVC equivalente a __builtin_popcount?
- 28. Equivalente a 'este' puntero
- 29. pitón equivalente a sed
- 30. Flecha equivalente a mapM?
http://gynvael.coldwind.pl/?id=15 – SigTerm
@SigTerm Estaba a punto de publicar ese enlace, es un truco ordenado. – AusCBloke