커널에 do while 매크로가 있을까?

리눅스 커널을 보면 아래와 같이 do {} while 매크로가 있다. https://github.com/raspberrypi/linux/blob/f6b3ac28f0a9137d4c24c0b8832e693bbd16f5b7/include/linux/hardirq.h#L36 do ~ while로 매크로 함수를 사용하는 두가지 이유가 있다. 첫째는 {} 을 통해서 중복이름을 막는다. 매크로 함수는 말그대로 컨트롤 C+V효과를 동일한 효과가 있어 중복이름이 있을때 undefined behavior이 된다. 이를 방지 하기 위해 블록을 사용한다. 둘째 ; 을 강제화한다. 여러개의 함수를 define을 하게되면 ;을 포함해서 소개 더보기 커널에 do while 매크로가 있을까?[…]