naked?
-
Hi,
was bedeutet das hier?
__declspec(naked) void foo (void) { // do something }
-
Google: http://www.google.de/search?q=__declspec(naked)
ergibt -> http://msdn.microsoft.com/library/en-us/vccelng/htm/msmod_25.asp
-
und wo ist dabei der sinn?
-
*** schrieb:
und wo ist dabei der sinn?
Der Sinn ist der, dass du Prolog und Epilog selber schreiben kannst - du also ohne Probleme Aufrufe von 'aussen' (also non-C++ Code) trotzdem verwenden kannst. Weil du einfach Prolog und Epilog so schreibst, dass er zu dieser Calling Convention passt - egal was für eine es ist.
Da dir das nix sagt (stand ja genauso auch in der msdn) vergiss es einfach.
-
es geht um die Umwandlung in Assembler Code, normalerweise gibt es eben einen Vorspann und Abspann, der so aussieht (beim GCC)
pushl %ebp movl %esp, %ebp # hier ist dann der eigentliche Funktionsteil leave ret
Wenn du nun irgend welche Aufrufkonventionen befolgen musst, kann es ja sein, dass du dann deinen eigenen Vorspann und Abspann schreiben musst und damit hier der Compiler nicht reinfunkt, gibt es das eben