simple Strukturen
-
Hi, ich komme mit der Deklaration einer Struktur nicht so ganz klar
typedef struct a { int i; unsigned c : 1; } b;
1. Was bedeutet dieses unsigned c : 1;
2. Wofür steht a und b?
Also was ist der Name, und was ist dann das andere?..
Danke!
-
a und b:
a steht für den namen der struktur
b steht für ein objekt, dass initialisiert wurdec : 1 :
diese variable wird ein bit speicher belegen (imho unnötig bei so einer kleinen struktur)
-
BitWax schrieb:
b steht für ein objekt, dass initialisiert wurde
Eigentlich nicht, siehe typedef
typedef struct tagName { int i; unsigned c : 1; } typeName; struct tagName var1; typeName var2;
Bei tagName muss man in variablen Definition in dem fall struct davor schreiben.
Mit Hilfe des typedef's definirst du ein neuen type 'typeName für den alten
diesen:struct tagName { int i; unsigned c : 1; }
-
typedef struct tagName { int i; unsigned c : 1; } typeName; struct tagName var1; typeName var2;
struct tagName { int i; unsigned c : 1; } objekt; struct tagName var1; objekt.i = 0;
Bei typedef ist es der typeName und ohne typedef initialisiert man eine Variable?
Also kann ich in meinem Fall (mit typedef) den tagName weglassen, weil dieser unnötig ist?
-
Derjenige schrieb:
Bei typedef ist es der typeName und ohne typedef initialisiert man eine Variable?
ja, definiert.
Derjenige schrieb:
Also kann ich in meinem Fall (mit typedef) den tagName weglassen, weil dieser unnötig ist?
ja, Manchmal ist es aber nötig.
In dem Fall:typedef struct tagName { int i; unsigned c : 1; struct tagName *next; } typeName;
-
Ramsis schrieb:
ja, Manchmal ist es aber nötig.
In dem Fall:typedef struct tagName { int i; unsigned c : 1; struct tagName *next; } typeName;
Blödsinn
typedef struct tagName typeName; struct tagName { int i; unsigned c : 1; typeName* next; };
-
hey schrieb:
Ramsis schrieb:
ja, Manchmal ist es aber nötig.
In dem Fall:typedef struct tagName { int i; unsigned c : 1; struct tagName *next; } typeName;
Blödsinn
typedef struct tagName typeName; struct tagName { int i; unsigned c : 1; typeName* next; };
Soll ich dir jetzt jede mögliche Lösung prärentieren?
-
Soll ich dir jetzt jede mögliche Lösung prärentieren?
nein, wieso auch? -.-"
ich sage ja nur, dass "manchmal ist es eben nötig" nicht korrekt ist. es ist
eben nötig, sondern möglich (und manchmal mehr und manchmal weniger sinnvoll).