AutoIt befehl (wie C++ #define)

  • Hallo in C++ gibt es ja den Präprozessor befehl #define

    Spoiler anzeigen


    Präprozessor
    Direktive #define

    #define bezeichner ersatzliste

    #define bezeichner(bezeichner_liste) ersatzliste

    Im ersten Fall wird eine symbolische Konstante, im zweiten Fall ein Makro definiert.


    Nun ist meine Frage ob es so etwas auch für AutoIt gibt.

    mfg

    Einmal editiert, zuletzt von clockgen (8. Januar 2011 um 20:13)

  • Nein, es gibt nur normale Konstanten. Statt den zweiten könnte man Funktionen verwenden. Die sind in AutoIt etwas flexibler als in C++.
    Es gibt vom Compiler / Interpreter definierte Präprozessorsymbole, aber man kann keine eigenen definieren.


    Präprozessorbefehle werden in C++ ja auch hauptsächlich verwendet um einen Header nur einmal einzulesen und somit keine doppelten Definitionen aufkommen zu lassen:

    Code
    #ifndef DIESE_DATEI_SCHON_EINGEFUEGT
    #define DIESE_DATEI_SCHON_EINGEFUEGT
    ....
    #endif


    macht das gleiche, wie in AutoIt:

    [autoit]

    #include-once

    [/autoit]


    Dann gibt es noch Abfragen auf bestimme Compiler oder Compile-einstellungen oder Betriebssysteme:

    Code
    #ifdef _WIN32
    #if _MSC_VER < 1300  //Microsoft Visual-C++-Version
    #if defined(__APPLE__) || defined(MACOSX)
    #ifdef __GNUC__     //GNU-Compiler
    #ifdef _DEBUG


    Und ein weiterer Grund ist Zeitersparnis. Während bei Funktionen immer erst etwas abgefragt werden muss, kann man bestimmte Dinge, die schon zur Compiletime feststehen, vom Präprozessor definieren ohne dass beim Ausführen Zeit für irgendwelche Berechnungen oder Abfragen draufgeht.


    Bei AutoIt ist das meiste hinfällig. Es gibt AutoIt-Standartbefehle dafür (Bsp.: #include-once). Es gibt nur einen Interpreter und nur ein Betriebssystem (Winows) und keinen Debug-Modus. Und AutoIt ist eine Interpretersprache und es gibt somit keine Zeitersparnis. Der COmpiler ist auch kein richtiger Compiler und das Skript wird trotzdem interpretiert (wenige Ausnahmen, Bsp: Icon der Exe bestimmen).

  • Danke für deine erklärung. Nur hab wollte ich so etwas wie das C++ define dafür nehmen das ich für ein langes Wort einen
    kürzel setze und somit im code nur noch immer den kürzel schreiben muss.
    Bei C++ geht der Präprozessor vor dem Compalieren ja über den code und setzt das bei define angegebene an die
    stellen wo das kürzel steht.

    Code
    #define abc = "ABCDEFGHIJ...XYZ"
    
    
    abc
    abc

    In AutoIt kann ich so etwas ja mit Konstanten machen, nur hatte ich die überlegung nicht dafür eine Variable zu setzen sodern einfach
    einen Befehl an den Präprozessor. Der vor dem Compalieren alles in dem Script setzt.

    mfg