sw2009/11/24 10:48
큐브리드 소스를 읽다 보면 아래와 같은 define문이 많습니다.

#define free_and_init(ptr) \
        do { \
          free ((ptr)); \
          (ptr) = NULL; \
 } while (0)

왜 이런식으로 사용을 하는지 궁금했었는데...이런 이유가 있었군요...

원본 : http://kernelnewbies.org/FAQ/DoWhile0
- 공백 표현이 있으면 컴파일러에서 경고를 한다.
- 지역변수를 사용하기 위한 블록을 제공하기 위함이다.
- 조건문과 같은 복잡한 매크로를 사용할 수 있게 한다.
Posted by redef

댓글을 달아 주세요