some compilers may issue warning about while(0) statements (constant condition in while); I'd suggest to make just the empty macros