重複の可能性:
C/C++ マクロに無意味な do/while ステートメントと if/else ステートメントがあるのはなぜですか?
以下のようなコードに出会いました:
#define ev_io_init(ev,cb,fd,events) \
do { \
ev_init ((ev), (cb)); \
ev_io_set ((ev),(fd),(events)); \
} while (0)
著者がここを使用する理由を知りたいですdo { } while (0)
。これと違いはありますか?
#define ev_io_init(ev,cb,fd,events) { \
ev_init ((ev), (cb)); \
ev_io_set ((ev),(fd),(events)); \
}
ところで:コードはlibev、ev_local.hからのものです