typedef



  • aah
    achso kann man also struct immer weglassen wenn man einmal ein typedef....

    geschrieben hat ?

    DANKE........≡



  • Mann kann das "typedefen" übrigens auch gleich in die Deklaration der Struktur einbauen. Also z. B. folgendermassen:

    typedef struct{
         int wert;
         KNOTEN *links;
         KNOTEN *rechts; 
    }*KNOTEN;
    
    KNOTEN ZeigerAufKnoten=NULL;
    


  • Muds schrieb:

    Mann kann das "typedefen" übrigens auch gleich in die Deklaration der Struktur einbauen. Also z. B. folgendermassen:

    typedef struct{
         int wert;
         KNOTEN *links;
         KNOTEN *rechts; 
    }*KNOTEN;
    

    Glückwunsch zur Auswahl eines Beispiels, wo es eben gerade nicht geht 👍. Der Typ KNOTEN ist zu dem Zeitpunkt, wo du ihn innerhalb der Struktur verwendest noch nicht bekannt.



  • Muds schrieb:

    Also z. B. folgendermassen:

    Volltreffer 😃

    greetz, Swordfish



  • typedef struct knoten KNOTEN;
    
    struct knoten {
        int wert;
        KNOTEN *links;
        KNOTEN *rechts;
    };
    

    das geht aber 😉
    du siehst also, dass du auch ein typedef von "knoten" machen kannst, bevor es überhaupt als struktur dem compiler bekannt ist. 😉



  • hey schrieb:

    du siehst also, dass du auch ein typedef von "knoten" machen kannst, bevor es überhaupt als struktur dem compiler bekannt ist. 😉

    Jo, aber das ist wieder ein Eintrag in das große Buch, wie man Programme leseunfreundlicher gestalten kann.



  • pointercrash() schrieb:

    hey schrieb:

    du siehst also, dass du auch ein typedef von "knoten" machen kannst, bevor es überhaupt als struktur dem compiler bekannt ist. 😉

    Jo, aber das ist wieder ein Eintrag in das große Buch, wie man Programme leseunfreundlicher gestalten kann.

    achwas, dicht beieinander geschrieben versteht man das schon. und wenn die module entsprechend klein ausfallen sollte man keine schwierigkeiten bekommen. außer man versaut sich seinen code so richtig und die beiden deklarationen befinden sich im abstand von 400 zeilen ^^



  • hey schrieb:

    achwas, dicht beieinander geschrieben versteht man das schon. ... und die beiden deklarationen befinden sich im abstand von 400 zeilen ^^

    Ja nu, schon, aber genau darin liegt das Problem. Einen typedef setzt man eher in den Modul- Kopf und dazwischen wächst und gedeiht Omas Gemüsegarten.

    Aber was anderes zu dem Thema: typedef funktioniert wie Makros mit rein textueller Ersetzung? Oder gibt es da noch mehr im Reich der Definitionen? Bisher drängt sich typedef als Kurzschreibweise für structs auf, aber man kann wohl mehr damit tun, oder?



  • So geht es aber, oder?

    typedef struct _KNOTEN{
         int wert;
         struct _KNOTEN *links;
         struct _KNOTEN *rechts; 
    }*KNOTEN;
    
    KNOTEN ZeigerAufKnoten=NULL;
    


  • Auch ohne Unterstrich.



  • Ganz allgemein gesagt:
    ein typedef erzeugt einen Namen für einen bestehenden Typen, jedoch wird kein neuer Typ damit erstellt. Zudem wird hier noch kein Speicherplatz reserviert.


Anmelden zum Antworten