[t:/]$ 지식_

커널 코드의 do{} while(0)

2009/01/05

리눅스 커널 헤더 또는 다른 코드에서도 종종 do { } while(0) 를 보곤 한다.

쓰는 이유는 다름 아니다.

... 라고 설명을 달고자 했으나 귀찬타;;

http://kernelnewbies.org/FAQ/DoWhile0

요약 :

1 . do { } while(0); 는 한 번은 실행된다.

  1. if ~ else 에서 {} 를 쓰지 않으면 매크로 함수의 첫 줄만 실행될 가능성이 있다.
  2. 컴파일러에 따라 c++ 식의 상습적 중괄호에서 워닝, 에러를 내기 때문.
  3. 기타 읽어보삼.








[t:/] is not "technology - root". dawnsea, rss