Возможный дубликат:
Почему иногда в макросах C / C ++ используются бессмысленные операторы do / while и if / else?Почему
do while (false)
необходимо в макросах ниже?#define LOG(message, ...) \ do { \ Lock
lock (logMutex); \ .... a lot of code ... } while (false) Я не думаю, что это служит какой-либо функциональной цели. Я что-то упускаю?