Kann mir jemand typedef erklären?



  • Hallo,

    Also ich versteh dieses typedef nicht richtg...auf vielen Seiten verstehe ich das auch nciht...kann jmd das nochmal für mich schreiben? danke!



  • Man kann typedefs brauchen wenn man komplizierte Datentypen hat. In C++ z.B. std::vector< std::vector<double> > und du möchtest den etwas besser lesbar machen (oder weniger schreiben müssen).

    Dann machst du halt typedef Matrix std::vector< std::vector<double> >. Anstatt std::vector< std::vector<double > kannst du nun Matrix schreiben, was doch etwas angenehmer ist und man kanns auch besser lesen.

    Allerdings nicht übertreiben mit typedefs 😉

    PS:
    Sry für das C++ Beispiel. Aber ich bin mir sicher du kannst dir auch C Konstrukte ausdenken, die du darauf anwenden kannst 😉



  • Ist es nicht eher

    typedef std::vector< std::vector<double> > Matrix;
    

    ?



  • GyroGearloose schrieb:

    Ist es nicht eher

    typedef std::vector< std::vector<double> > Matrix;
    

    ?

    Jap, hast natürlich recht 👍



  • Mit Typedef kannst du dir neben dem Schreibaufwand auch den Verwaltungsaufwand erleichtern, wenn du einen verwendeten Typ nachträglich vergrößern willst. Beispiel:

    Du hast typedef float MoneyUnit; und jetzt beschweren sich deine Kunden, dass ihre Geldbeträge ungenau berechnet wurden. Dann ersetzt du einfach das float in dieser Zeile durch double und alle Berechnungsroutinen deines Programms, die MoneyUnit benutzen, rechnen jetzt automatisch genauer.

    Kompliziert wird typedef vor allem bei Funktionspointern oder Arrays:

    typedef OldType NewType[5];  //OldType a[5] == NewType a
    typedef ReturnType (*NewType)(ParamType1, ParamType2);  //ReturnType (*my_func_ptr)(ParamType1, ParamType2) == NewType my_func_ptr
    

Anmelden zum Antworten