[C 언어] 매크로에 do {...} while(0)을 사용하는 이유

매크로에 do ~ while(0)을 사용하면,

  1. 매크로 안에 지역변수를 사용할 수 있게 된다. (scope 생성)
  2. if절과 매크로를 사용했을 때, 개발자가 의도한 대로 동작하게 한다.
  3. if ~ else절을 사용했을 때 발생할 수 있는 세미콜론 문제가 없어진다.
#define MACRO_FUNC 
do
{
	int i = 0;
}
while(0);

if(1)
{
	MACRO_FUNC;
}
else
{

}