커널 코드의 do{} while(0)
2009/01/05
리눅스 커널 헤더 또는 다른 코드에서도 종종 do { } while(0) 를 보곤 한다.
쓰는 이유는 다름 아니다.
... 라고 설명을 달고자 했으나 귀찬타;;
http://kernelnewbies.org/FAQ/DoWhile0
요약 :
1 . do { } while(0); 는 한 번은 실행된다.
- if ~ else 에서 {} 를 쓰지 않으면 매크로 함수의 첫 줄만 실행될 가능성이 있다.
- 컴파일러에 따라 c++ 식의 상습적 중괄호에서 워닝, 에러를 내기 때문.
- 기타 읽어보삼.
[t:/] is not "technology - root". dawnsea, rss