Struct richtig befüllen



  • hi,

    warum geht folgendes Beispiel nicht ?

    def COORD
    typedef struct _COORD {
    SHORT X;
    SHORT Y;
    } COORD, *PCOORD;

    COORD position = { 0, 0 };
    	position.X = 0;
    	position.Y =13;
    	position = {13,0};  // Diese versuchte Kurzschreibweise mag er nicht. Warum ?
    


  • Du versuchst, die nur bei Initialisierungen erlaubte Syntax auch bei einer Zuweisung zu benutzen. Mit C89 geht das so nicht, du müsstest dir was basteln, z.B.:

    COORD position;
    ...
    {
      COORD temp = {13,0};
      position = temp;
    }
    

    oder ab C99 mit compound literal:

    COORD position;
    ...
    position = (COORD){13,0};
    


  • dafür tut man sich setterfunktion schreibene.
    mal sehen, ob ich es aus dem kopf (!) hinbekomme:

    void set_coord(COORD* p, int x, int y)
    {
    p->X = x;
    p->Y = y;
    }
    ...
    COORD position = { 0, 0 };
    set_coord(&position, 3, 34);
    ...
    

Anmelden zum Antworten