9
Зачем использовать явно бессмысленные операторы do-while и if-else в макросах?
Во многих макросах C / C ++ я вижу код макроса, заключенный в нечто вроде бессмысленного do whileцикла. Вот примеры. #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else Я не вижу, что do whileделает. Почему бы просто не написать это …
788
c++
c
c-preprocessor
c++-faq