Vincent Béron wrote:
Besides the fact that HIDWORD and LODWORD (typo in LODDWORD) do not exist,
Yes, I was extrapolating on existing macros for readability.
Yes. You are right. If you try to cast them to "unsigned long long", you get the compiler to reveal the true problem:it looks fine as long as you don't actually compile it.
Writing those two and compiling yields the error "initializer element is
not constant".
keyboard.c:86: warning: initializer element is not computable at load time
Which is, I'm afraid, without solution. The compiler is not smart enough to understand that the cast (or a shift of 32 bits) is not really a mathematical operation, and will refuse to do it if it doesn't know the exact value at compile time. I tried doing the same thing with pointer arithmetics, but to no avail (the cast fails). I'm afraid this one bested me. I don't see a clean solution to this one.
Shachar
-- Shachar Shemesh Lingnu Open Source Consulting ltd. http://www.lingnu.com/