Hirdetés

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

  • Sziasztok, egy kis segítségre lenne szükségem:

    C-ben hogyan tudom azt megoldani, hogy egy 8 bites tömb elemeit tudjam írni és olvasni 16 bitesként is?

    Valami ilyesmire gondoltam, csak ez nem működik, bár a fordító nem jelez hibát:

    uint8_t zreg[8];

    #define C zreg[0]
    #define B zreg[1]

    #define BC (uint16_t)zreg[0]

    ...

    BC += 1;

    A segítségeteket előre is köszönöm!

    Üdv!

    uint8_t zreg[8] = {0,0,0,0,0,0,0,0};

    #define C zreg[0]
    #define B zreg[1]
    #define E zreg[2]
    #define D zreg[3]

    #define BC (uint16_t*)&zreg[0]
    #define DE (uint16_t*)&zreg[2]

    int main(int argc, char**argv)
    {
    int i;

    *BC += 852;
    *DE += 4500;

    printf("BC: %d, DE: %d\n", *BC, *DE);

    printf("zreg: ");
    for (i = 0; i < 8; ++i) {
    printf("%d ", (int)zreg[i]);
    }
    printf("\n");

    return 0;
    }

    Eredmény:

    $ gcc -o 1.exe 1.c; 1.exe
    BC: 852, DE: 4500
    zreg: 84 3 148 17 0 0 0 0

    Imi.

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