아래 소스는 업무용(?) 소스중 일부입니다
---------------------------------------------
#define AUDIOBOOK_FREE(ptr)
do {
if ( ptr )
{
sys_free( ptr );
ptr = NULL;
}
}while (0)
---------------------------------------------
이 매크로의 경우 do/while문으로 감싸준게
무슨 이유인지 궁금해서요.
최적화나 아니면 아토믹 오퍼레이션(-_-) 이런거
아닐까 짐작은 하는데, 이해를 못하겠습니다 ㅎ
를 참조하시면 될 듯 합니다.
atomic이랑은 상관없고, C를 쓸 때 쓰는 스타일에 따라 구문에러가
날 가능성이 있기 때문에 do...while문으로 묶어주는 겁니다.
참고로 저는 프로그래밍할 때 항상 { }를 쓰기 때문에 보통은
do...while문으로 매크로를 사용하지 않습니다....^^