En el lenguaje de programación C, entiendo que las variables solo se pueden definir al comienzo de un bloque de código, y la variable tendrá el alcance del bloque en el que se declaró. Con eso en mente, me preguntaba si se considera una mala práctica para crear artificialmente un nuevo ámbito como en este ejemplo:¿Es correcto (VERDADERO) una buena idea en C?
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}
Suponiendo TRUE se pone a 1 en una definición de macro, sería este código se considera 'buena código' o se hacen los programadores experimentados se encogen ¿Solo con pensarlo?
¡Gracias por su contribución!
EDITAR: En respuesta a algunas de las respuestas, el código con el que estoy trabajando necesita trabajar con algunos sistemas antiguos muy antiguos. Si bien sería bueno operar con una suposición de C99, realmente no podemos garantizar que lo tendrán.
afaik, {} tiene su propio alcance sine ansi C (alrededor de 1990) – George
El caso de uso típico para esto es la depuración, donde puede cambiar fácilmente entre if (42) y if (0) en lugar de comentar. – ypnos
Su título realmente no describe la pregunta en absoluto. Parece como si estuvieras preguntando si es una buena práctica definir VERDADERO. – BobbyShaftoe