Dlaczego warto używać bezsensownych instrukcji do-while i if-else w makrach?
W wielu makrach C / C ++ widzę kod makra zawinięty w coś, co wydaje się bez znaczeniado while
pętla. Oto przykłady.
#define FOO(X) do { f(X); g(X); } while (0)
#define FOO(X) if (1) { f(X); g(X); } else
Nie widzę codo while
to robi. Dlaczego po prostu nie napisać tego bez niego?
#define FOO(X) f(X); g(X)