可能重复:
Why are there sometimes meaningless do/while and if/else statements in C/C++ macros?为什么要用循环,而不是在宏块用C
您好,在很多C宏程序员使用特殊的一环,例如:
#define do_something(a) do { execute(a); count(a); } while(0)
因为当你想在循环中做这个宏并且你不使用“{}”。 为什么他们不使用简单的块呢?我的意思是,不是
#define do_something(a) { execute(a); count(a); }
有非常相同的效果?
-1:什么?这不是原因。 – 2011-05-22 16:54:22
这不是原因,但它是一个原因。 – Hogan 2011-05-22 17:05:05