C struct
bleicher
- programmiertechnik
Grüße,
bin verzweiffelt -
struct pkw{
...
}audi;
pkw ist typ, audi ist variable
typedef struct pkw{
...
}audi;
jetzt ist sowohl pkw als auch audi typdeklaration der gleichen art?
wie ist es genau definiert?
MFG
bleicher
Moin.
struct pkw{
//...
}audi;
is äquivalent zu
struct pkw{ // Definition des Typs `struct pkw`
//...
};
struct pkw audi; // Deklaration einer Variablen `audi` vom Typ `struct pkw`
wohingegen
typedef struct pkw{
// ...
}audi;
äquivalent ist zu
struct pkw{ // Definition des Typs `struct pkw`
// ...
};
typedef struct pkw audi; // Definition des Typs `audi` als Alias zu `struct pkw`
d.h. struct pkw
und audi
können synonym verwendet werden; z.B. ist die Variablendeklaration
audi audi;
identisch mit
struct pkw audi;
Es ist anzumerken, dass (im Gegensatz zu C++) in C die type tags (d.h. struct
, union
, enum
) zwingend erforderlich sind.
Christoph
Da war ich etwas voreilig:
audi audi;
ist natürlich nicht erlaubt. Es kann daher sinnvoll sein, Typnamen den Suffix \_t
zu verpassen, d.h. z.B.
typedef struct pkw audi_t;
audi_t audi;
Grüße,
danke - jetzt stimmt das system^^ aber es heißt dan auch, dass typedef struct eine verkuplung von 2 anweisungen ist - einmal
typedef bla (als alias zu->) struct{}name; ?
also bei struct{}bla;
wäre bla typ?
stuct bla{} == stuct{}bla; ????
MFG
bleicher