structs
-
Angenommen ich deklariere eine struct so:
struct BasicStruct { string name_a; string name_b; };Was wäre dann der Unterschied zwischen
static BasicStruct Basic1[] = { { "aaa", "bbb." }, { "ccc", "ddd." } };und
static BasicStruct { { "aaa", "bbb." }, { "ccc", "ddd." } } Basic2;oder gar
static BasicStruct { { "aaa", "bbb." }, { "ccc", "ddd." } } Basic3[];Alle außer Basic1 sind gar nicht getestet ob sie überhaupt kompilieren.
Es ist eher von teorethischem Interesse.Danke im voraus.
-
Der Unterschied ist: Die erste Variante ist erlaubt (und üblich zur Vorbelegung der Array- und Struct-Elemente). Die beiden anderen Versionen sind syntaktischer Unsinn.
-
CStoll schrieb:
Der Unterschied ist: Die erste Variante ist erlaubt (und üblich zur Vorbelegung der Array- und Struct-Elemente). Die beiden anderen Versionen sind syntaktischer Unsinn.
Danke. Ist mir nur gerade so eingefallen.
-
Und wie würde dann Deklaration + Basic1 aussehen, wenn ich es in einem Block zusammenfassen wollen würde?
Edit:
Inkl. static
-
Mit dem static bin ich mir nicht sicher, aber der Rest wäre vermtulich:
struct BasicStruct { string name_a; string name_b; } Basic1[] = { { "aaa", "bbb." }, { "ccc", "ddd." } };(ungetestet und aus dem Gedächtnis)
-
Ich werde morgen mal versuchen ob es mit einem
static Basic1[]evtl. funktioniert.
Danke nochmal für deine Antworten.
-
Eher
static struct BasicStruct { string name_a; string name_b; } Basic1[] = { { "aaa", "bbb." }, { "ccc", "ddd." } };Denn Folgendes ist eine erlaubte Syntax:
Speicherklasse Typ Variable[] = ArrayInitialisierer;