Possible Duplicate:
Why are there sometimes meaningless do/while and if/else statements in C/C++ macros?
Hello, in many C macros programmers use special one-loop, for example:
#define do_something(a) do { execute(a); count(a); } while(0)
because of when you want to do this macro in loop and you don't use "{}". Why they aren't using simple block instead? I mean, doesn't
#define do_something(a) { execute(a); count(a); }
have the very same effect?