Hirdetés

Keresés

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

  • followme
    aktív tag

    Ha kicsit figyelmesebben olvasol akkor látod, hogy alapvetően pointerek castolásáról van szó. Egyszerű típusokra jól definiált konverziók vannak amiket a fordító ismer is.
    Ettől függetlenül a megadott példát is lehet szépen csinálni:

    res8 = ~p;
    res8 >>= 3;

    Mindjárt kevesebb zárójelen kell az ember szemének jojóznia.

    Az már csak a hab a tortán, hogy a te példád pont az én állításomat támasztja alá, miszerint a castolás "bizonyos esetekben szükséges rossz".

    Bocsi, nem olvastam az elejét, csak átfutottam és megláttam amit írtál és az ütött szemet.

    Igazad van, gyakorlatilag mindent lehet ilyen szempontból máshogy csinálni.

    De akkor még egy példa arra, hogy miért kerüljük az implicit típuskonverziót:

    uint16_t u16a = 40000;
    uint16_t u16b = 30000;
    uint32_t u32res;

    u32res = u16a + u16b;
    /* 70000 vagy 4464? */

    Ha van rá igény mutatok olyan példát, amikor másra is használható a castolás. Nagyon szépen lehet vele például OO szerű C kódot írni :)

    Csak nem szeretném, hogy a fórumozók idegenkedjenek tőle :))

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