Fragen zu __fastcall bzw. register



  • Guten Abend !

    __fastcall bzw. register fragen ja ob Platz im CPU Register für "meine" Variablen ist, richtig ?

    Meine Vorstellung ist jetzt, da die Prozessoren im Gegensatz zu früher um einiges in der Leistung gestiegen sind, ist es doch ziemlich warscheinlich das Platz im CPU Register ist, oder ?

    Gibt es irgendwo etwas darüber nachzulesen oder über CPU Architektur und Register damit man mal eine Vorstellung davon bekommt ???

    Denn man könnte ja jede Funktion, die häufig gebraucht wird und zum Beispiel mit einigen Schleifen arbeitet mit einem __fastcall versehen ?

    Grüsse Michael



  • 1. __fastcall kennt AFAIK nur der Microsoft-Compilter, also -> Falsches Forum.
    2. Die Anzahl der für __fastcall verwendbaren Register hat sich seit dem 486 nicht vergrößert.
    3. Nachzulesen in jedem Assembler-Tutorial (s. Assembler-FAQ). 🙂
    4. __fastcall sollte man nur selten (oder nie) einsetzen, außer vielleicht es bringt nachweisbar mehr Geschwindigkeit. Kleine Funktionen werden sowieso inlined.



  • cd9000 schrieb:

    4. __fastcall sollte man nur selten (oder nie) einsetzen, außer vielleicht es bringt nachweisbar mehr Geschwindigkeit.

    warum?



  • Weil es kein Standard C++ ist?



  • Dann macht doch

    #ifdef _MSC_VER // oder wie auch immer das hieß. 
    #   define FASTCALL __fastcall
    #else
    #   define FASTCALL
    #endif
    

    und verwende FASTCALL



  • cd9000 schrieb:

    Weil es kein Standard C++ ist?

    nee. das ist der grund, warum ich keine maus lesen darf, keine farbige ausgabe machen und keinen sound ausgeben.
    fastcall kann ich als compileroption einstellen, daß einfach alle funktionen fastcall machen. spricht da was dagegen?



  • volkard schrieb:

    fastcall kann ich als compileroption einstellen, daß einfach alle funktionen fastcall machen. spricht da was dagegen?

    ja, denn dann koennte der code uebersichtlich werden...


Anmelden zum Antworten