На языке программирования C я понимаю, что переменные могут быть определены только в начале блока кода, а переменная будет обладать областью, в которой он был объявлен. Имея это в виду, мне было интересно считается ли плохая практика искусственно создавать новую область действия, как в этом примере:
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}
Предполагая, что значение TRUE установлено в 1 в определении макроса, будет ли этот код считаться "хорошим кодом" или он заставит опытных программистов съеживаться при самой его мысли?
Спасибо за ваш вклад!
EDIT: В ответ на некоторые из ответов код, с которым я работаю, должен работать с некоторыми довольно древними устаревшими системами. Хотя было бы неплохо работать на предположении C99, мы действительно не можем гарантировать, что они будут иметь его.