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;
    

Anmelden zum Antworten