4
可能性の重複:
how does do{} while(0) work in macro?なぜ、(見かけ上)無意味なループで複数行のマクロがラップされているのを見続けていますか?
thisブログ記事からの例:
#define VTAILQ_INSERT_BEFORE(listelm, elm, field) do { \
(elm)->field.vtqe_prev = (listelm)->field.vtqe_prev; \
VTAILQ_NEXT((elm), field) = (listelm); \
*(listelm)->field.vtqe_prev = (elm); \
(listelm)->field.vtqe_prev = &VTAILQ_NEXT((elm), field); \
} while (0)
私は他の人に遭遇しましたが、この1は私が
十分によく何を意味するかを浮き彫りに