Zuweisung fuer Strukturen



  • Hi,

    Eine Zuweisung sieht so aus:

    my_structure var1 = {(UINT16)0x5AA5u};
    

    wobei die Struktur

    typedef struct
    {
    	UINT16 signature;
    	UINT8 data[10];
    }my_structure;
    

    ist.
    Frage: ist diese Zuweisung identisch mit

    my_structure var1;
    var1.signature = {(UINT16)0x5AA5u};
    

    ?

    MfG
    Senmeis



  • Nein, ist sie nicht - letzteres ist gar nicht erlaubt (Initialisierungslisten sind nur bei der Variablendeklaration erlaubt, danach mußt du die Elemente einzeln zuweisen):

    my_structure var1;
    var1.signature = 0x5AA5u;
    

    PS: Wobei da immer noch ein Unterschied besteht - bei der direkten Initialisierung wird var1.data afair mit Nullen gefüllt, bei der Zuweisung bleiben dort willkürliche Werte drin stehen.


Anmelden zum Antworten