본문 바로가기

C

C: do {...} while(0) 사용 이유 # do {} while(0) # macro 매크로 # preprocessor 전처리기

728x90
반응형

The do { ... } while(0) structure is a common C macro idiom used to ensure that the macro behaves like a function or a statement block when used. This allows you to call the macro in your code without worrying about dangling else clauses that might otherwise misinterpret the end of the macro as the beginning of an else block.

 

* 매크로 관용구 (매크로: 복수 명령어)

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

  1. 매크로 안에 지역변수를 사용할 수 있다. (scope 생성)

  2. if 절과 매크로를 사용했을 때, 개발자가 의도한대로 동작하게 할 수 있다.

  3. if ~ else절을 사용했을 때 발생할 수 있는 세미콜론(;) 문제를 피할 수 있다.

 

참고

https://mongpoo-tech-blog.tistory.com/3

728x90
반응형