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 { . . };
-
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;
odertyp_name foo;
. Einen Typen ohne Name zu definieren, bringt nichts, wie schon gesagt wurde.
-
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, dasstyp_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 ?
-
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!