2011/5/22 Aleksey Bragin <[email protected]>:
> Fantastic, so I suppose whenever I want my double word variable to have a
> value of, say, 0x54 taking your friendly reminder about 8 hex digits into
> account, I would need to write 0x54545454 because, you know, I need 8 hex
> digits for 32-bit numbers and need to add some random stuff to fill it up to
> 8 digits :)

You can use something like this, though it's less self-descriptive:

    #include <stdio.h>
    typedef unsigned int DWORD;
    #define DUP4BYTES(c) ((DWORD)(c) | (DWORD)(c) << 8 | (DWORD)(c) <<
16 | (DWORD)(c) << 24)

    int main()
    {
        unsigned int x = DUP4BYTES(0x54);
        printf("x = %08x\n", x);

        return 0;
    }

GCC is smart enough to produce "movl   $0x54545454,-0x4(%rbp)" in its output.


-- 
Alexander Potashev

_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to