That's the usual way to define multi-line macros in C:
http://bytes.com/groups/c/219859-do-while-0-macro-substitutions