wofür ist typedef da?



  • Also in der Überschrift steht schon meine Frage ich weis nicht was ich damit anfangen soll, vll könnte mir einer ein kleines Beispiel geben für was dieser Befehl gut ist? Ich habe schon in der Hilfe nachgesehen doch dort habe ich es nicht so recht verstanden.



  • Damit kannst du z.B. Synonyme für Datentypen erzeugen.



  • Aha also das kapier ich aber kannst du mir noch ein konkretes Beispiel geben wofür das dann gut ist.



  • Hallo

    zum Beispiel bei den Events

    typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
    

    ist doch viel einfacher, dann nur TNotifyEvent schreiben zu können. Und das ist noch der einfachste Event.

    bis bald
    akari



  • Auch immer wieder beliebt, je nach System Integer typedefen:

    #ifdef _MSC_VER
    typedef __int8 int8;
    #elif ...
    typedef ... int8;
    #endif
    

    In der STL für Template-Aliases:

    template <class T>
    class vector
    {
        typename typedef T::iterator iterator;
    
        iterator begin (); // hier nicht T::iterator
    };
    

    Ich, wenn mir Namen wieder mal zu lang sind und ich sie häufig benötige:

    typedef CONSOLE_SCREEN_BUFFER_INFO CSBI;
    
    CSBI csbi;
    

    und, und, und, typedef ist nützlich 🤡

    MfG SideWinder



  • ich mache immer

    typedef unsigned int u32;
    

    wenn ich wegen irgendwelchen mathematischen gründen ne funktion anbiete, die nur bis 32 bist geht, nehem ich dann u32 statt unsigned int.

    außerdem verinfacht es machmal die schreibe.

    typedef char string32[32];

    string32 name[100];
    statt
    char name[100][32];

    oder besser noch bei funktionen.

    ein newHandler ist eine funktion, die void nimmt und void zurückgibt.
    die funktion setNewHandler nimmt einen zeiger euf nen newHandler und gibt den zeiger auf den bisherigen nerHandler zurück.
    also
    void(*snh (void(*)(void)) )(void)//oder so ähnlich, das raft ja kein schwein.
    oder besser
    typedef void nh();
    nh* snh(nh*);



  • Gut gut ich sehe das ist echt nützlich also dann danke für die Hilfe



  • Sry erstmal für den Doppelpost.

    Also ich möchte für so eine kleine Frage nicht noch einen neuen Thread aufmachen, also wo/in welcher Header Datei finde ich die ShowMessageFunktion? In der Hilfe des Builder 6 steht nichts darüber wo man diese findet.



  • Das ist nicht zu entschuldigen, die Frage hat einfach nichts mit dem Thema zu tun und gehört somit in einen eigenen Thread.

    Im übrigen: in der Hilfe steht doch deutlich, dass ShowMessage in dialogs.hpp deklariert ist. Explizites Einbinden ist allerdings nicht notwendig, dialogs.hpp ist über die vcl.h automatisch inkludiert.



  • Ansonsten (evtl. für zukünftige Fälle) brauchst du (zumindest beim BCB 6) die Hilfe gar nicht. Dort reicht es, wenn du mit dem Cursor über die Funktion fährst, dann zeigt er dir den Namen der Datei, in der die Funktionsdefinition steht inkl. Zeilenangabe.

    Vorrausgesetzt, du hast es nicht in den Optionen deaktiviert...



  • Reyx schrieb:

    [...]
    Vorrausgesetzt, du hast es nicht in den Optionen deaktiviert...

    Was man spätestens dann macht wenn man ein Projekt mit vielen Zeilen/Dateien hat....



  • Beliah schrieb:

    Was man spätestens dann macht wenn man ein Projekt mit vielen Zeilen/Dateien hat....

    Komisch. Bei mir klappt das problemlos, auch in großen Projekten. Wenn ich auf irgendetwas zeige, dauert es maximal 2 Sekunden, bevor er mir die Headerdatei anzeigt. Beim Scrollen oder durchlaufen stockt er aber nicht. Die Maus bleibt immer bedienbar. Ist das bei euch anders? Stockt es dann, oder warum deaktiviert ihr das?

    @Mods: Wenn das zu Offtopic wird, könnt ihr das ja hier raus'splitten'. Danke.



  • Eben mal gezählt ~30sek (BCB6/Symbolinformationen durch Kurzhinweis)

    Aber mein Rechner auf der Arbeit ist auch nicht mehr der schnellste.
    Müsste ich mal zuhause(AMD64 3000er) gucken, aber da hab ich keine so großen Projekte und arbeite sowieso eher mit DevCPP



  • Also es ist so wenn du Projekte mit vielen Zeilen hast und dazu noch eigene Funktionen und Klassen, dann sucht Borland halt immer länger und irgendwann gibt es je nach Computer kleinere Pausen. Und nochmal entschuldigung das ich keinen eigenen Thread für dieses thema eröffnet habe. 🙄



  • Beliah schrieb:

    Eben mal gezählt ~30sek (BCB6/Symbolinformationen durch Kurzhinweis)

    Das Projekt in dem ich das eben probiert hab, hat 38 Formulare, 1 Datenmodul, 1 Unit mit Klssendefinition und es werden noch eine paar Units und Libs aus meiner 'Toolbox' verwendet. Ist also schon etwas größer. Maximal 2 Sekunden...
    Wird wohl tatsächlich am Rechner liegen. Der hier ist ein XP3200+ mit 1 GB RAM.



  • Joar also ich habs mit meinem jetzt auch nochmal getestet geht eigentlich doch schneller als ich gedacht habe, ich hatte etwas verwechselt und daher gedacht es ging um was anderes. Also es dauert kaum 2 Sekunden bei meinem größten Projekt(900 Zeilen Code) ich weiß is nicht viel aber es werde noch größere Folgen.



  • Also bei mir nervts schon ziehmlich!
    Ich krepele hier an der Arbeit mit einem p3 500 rum 😞
    Traurig das sowas überhaupt bei meiner mittelständischen internationalen Firma noch eingesetzt wird 😞
    Wenn ich durchscrolle, ist der Mauszeiger durchgehend die Eieruhr und er lädt und lädt. Ruckelt dann halt und nervt mich!
    Naja ANtrag auf nen neuen PC ist schon längst abgegeben, vielleicht geht der ja irgendwann mal durch


Anmelden zum Antworten