В языке программирования C я понимаю, что переменные могут быть определены только в начале блока кода, и переменная будет иметь область действия блока, в котором она была объявлена. Имея это в виду, мне было интересно считается ли плохой практикой искусственное создание новой области видимости, как в этом примере:
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}
Если в определении макроса TRUE установлено значение 1, будет ли этот код считаться «хорошим кодом» или это заставит опытных программистов съежиться от самой мысли об этом?
Спасибо за ваш вклад!
РЕДАКТИРОВАТЬ: В ответ на некоторые ответы код, с которым я работаю, должен работать с некоторыми довольно древними устаревшими системами. Хотя было бы неплохо работать с допущением C99, мы действительно не можем гарантировать, что они его получат.