Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz Aryes #22247 üzenetére

    Aztán, persze nem igazán sikerült megértenem a lelki világát, hogy pl.
    union x {
    uint8_t a;
    uint8_t b;
    } y ;
    Ebben mi a különbség az x és az y között?
    Rendben, hogy x a típus, y meg a változó neve, de azért nem sikerült teljes mélységében magamévá tenni. Például a korábbi mintapéldában.
    Bonyolultabb esetben (többszörös beágyazások), ha valami hiba van, és az y helyén nincs semmi, akkor hibajelzésként a unionra nem "unnamed union", hanem "unnamed struct" hivatkozik.
    Ezek szerint, a union számára egy struct, csak az elemeit egymásra címzi?
    Meg lehet azt adni, hogy egy sima struct elemei ugyanazt a memóriaterületet használják, azaz a fenti példában ha az uint8_t b helyére megfelelőt írok, akkor közösen használják?

    Mert rendben van, hogy tömbnél ezt hasznáhatom, hogy megadom a címet, pl:
    volatile uint32_t* SHA_TEXT_0_REG_array_32 =
    ((uint32_t *)(0x3FF03000));
    És akkor érvényes, értelmes pl. az:
    SHA_TEXT_0_REG_array_32[i] = 0;
    (mert ezt épp most írtam, és jó)
    viszont, ha nem tömb, hanem egyszerű változó, akkor is meg tudom adni, hogy egy konkrét címre, vagy egy mások változó "tetejére" rakja?
    Structnál is megy, de egyszerű változónál hogyan?

Új hozzászólás Aktív témák