Eventuali duplicati:
Why are there sometimes meaningless do/while and if/else statements in C/C++ macros?Perché utilizzare do {} while (0) nella definizione macro?
ho incontrato il codice come di seguito:
#define ev_io_init(ev,cb,fd,events) \
do { \
ev_init ((ev), (cb)); \
ev_io_set ((ev),(fd),(events)); \
} while (0)
voglio sapere perché l'autore usa do { } while (0)
qui. C'è qualche differenza con questo?
#define ev_io_init(ev,cb,fd,events) { \
ev_init ((ev), (cb)); \
ev_io_set ((ev),(fd),(events)); \
}
BTW: il codice è da libev, ev_local.h
... che fa, ma per favore non ... – moonshadow
Si riduce il numero di if-else la nidificazione . – shuva