C macro de várias linhas: do / while (0) vs bloco de escopo [duplicado]
Duplicatas Possíveis:
Qual é a utilidade de fazer while (0) quando definimos uma macro?
Por que existem, por vezes, instruções do / while e if / else sem sentido em macros C / C ++?
do {…} while (0) para que serve?
Eu vi algumas macros C multi-line que são empacotadas dentro de um loop do / while (0) como:
#define FOO \ do { \ do_stuff_here \ do_more_stuff \ } while (0)
Quais são os benefícios (se houver) de escrever o código dessa maneira ao invés de usar um bloco básico:
#define FOO \ { \ do_stuff_here \ do_more_stuff \ }