warning C4761: integral size mismatch in argument; conversion supplied



  • Hi,

    Ich habe so ein Makro um einen SHORT auszulesen:

    #define GETSHORT(x) ((x->mem_read(x->pc++ + 1) << 8) | x->mem_read(x->pc++))
    

    Leider gibt das immer die Warnung aus

    warning C4761: integral size mismatch in argument; conversion supplied

    Wie kann ich diese dumme Warnung wegbekommen? Ohne so einen cast

    #define GETSHORT(x) ((x->mem_read((u16)(x->pc++ + 1)) << 8) | x->mem_read(x->pc++))
    

    geht das? und was soll die meldung überhaupt bedeuten? soll ich so einen cast machen wie oben oder sie mit pragma warning disable wegmachen? 😕



  • Besinne Dich auf C und verwende Makros nur dann, wenn Du sicher weisst, was Dein C-Compiler damit macht! Wenn es Warnungen gibt oder etwas nicht läuft wie es soll, dann programmiert es einfach anders. Warum fragst Du hier?


Anmelden zum Antworten