Frage zu struct



  • typedef struct {
      UINT4 state[4];                                   /* state (ABCD) */
      UINT4 count[2];        /* number of bits, modulo 2^64 (lsb first) */
      unsigned char buffer[64];                         /* input buffer */
    } MD5_CTX;
    

    Was ist der Unterschied dazu:

    typedef struct MD5_CTX 
    {   
         .
         .
    };
    

  • Mod

    Das erste macht das was du denkst*, das zweite ist total nutzlos, wie dir dein Compiler mitteilen sollte, wenn du mal Warnungen anmachen würdest.

    *: Ich schränke ein: Es macht vermutlich nicht das, was du denkst, dem Rest deiner Fragen nach zu urteilen. Aber es macht zumindest etwas sinnvolles und das wird auch so sehr oft benutzt



  • Generell ist es so:

    typedef struct struktur_name
    {  
     ...
    } typ_name;
    

    Eine Instanz bekommt man dann mit struct struktur_name foo; oder typ_name foo; . Einen Typen ohne Name zu definieren, bringt nichts, wie schon gesagt wurde.


  • Mod

    Und da ich die nächste Frage schon voraus ahne: Der von Rab-Bit gezeigte struktur_name kann auch leer sein, da man ihn ohnehin nicht mehr braucht. Der Zweck der Aktion ist ja schließlich, dass typ_name in Zukunft reicht.



  • struct MD5_CTX  { 
      int state[4];                                   /* state (ABCD) */ 
      int count[2];        /* number of bits, modulo 2^64 (lsb first) */ 
      unsigned char buffer[64];                         /* input buffer */ 
    } var1,var2,var3;
    

    hab ich jetzt 3 stuktvariablen deklariert ?


  • Mod

    Ja. Und lies endlich mal ein Buch.



  • SeppJ schrieb:

    Ja. Und lies endlich mal ein Buch.

    Bücher kosten Geld oder man kann sie nur kurze Zeit ausleihen. Hier fragen kostet aber nichts! 🕶



  • nixgeld schrieb:

    SeppJ schrieb:

    Ja. Und lies endlich mal ein Buch.

    Bücher kosten Geld oder man kann sie nur kurze Zeit ausleihen. Hier fragen kostet aber nichts! 🕶

    Doch, Nerven, aber nicht den Fragesteller.



  • theta schrieb:

    Doch, Nerven, aber nicht den Fragesteller.

    Wenn es unsere Nerven kosten soll, brauchen wir hier nicht rumzuturnen und Antworten suchen. Aber es stimmt: 'Ein Buch lesen kann sehr nützlich sein!'

    edit: Lassen wir den Fragesteller nicht weiter voll im Regen stehen.

    Ein struct ist ein selbstdefinierter Datentyp, der andere vom Compiler vorgegebene Datentypen wie int, char, float, ... namentlich beinhaltet. Die Deklaration von Struktur-Variablen bleibt selbstverständlich zwingend wie bei int, char, float, ... auch!


Anmelden zum Antworten