C之{}注意点

最好将判断、循环都加上括号。

例如:

if(param1)

  FUNCTION1(param1,param2);

else

  do_somethings();

若#define FUNCTION1(param1,param2) do{fun2(param1,param2,NULL);param1+=param2;}while(0)

  代入

if(param1)

  do{fun2(param1,param2,NULL);param1+=param2;}while(0);

else

  do_somethings();

  无错

若#define FUNCTION1(param1,param2) {fun2(param1,param2,NULL);param1+=param2;}

代入

if(param1)

  {fun2(param1,param2,NULL);param1+=param2;};

else

  do_somethings();

  

若#define FUNCTION1(param1,param2) fun2(param1,param2,NULL);param1+=param2;

代入

if(param1)

  fun2(param1,param2,NULL);param1+=param2;;

else

  do_somethings();

  

所以,最好在宏定义使用处外面加{},特别判断、循环处加{}

原文地址:https://www.cnblogs.com/pokerface/p/6387258.html