在C编程语言中,我的理解是变量只能在代码块的开头定义,并且变量将具有声明它的块的范围。考虑到这一点,我想知道它是否是被认为是人为创建新范围的不良做法,如下例所示:
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}
假设在宏定义中将 TRUE 设置为 1,这段代码会被认为是“好代码”,还是会让经验丰富的程序员一想到它就畏缩?
感谢您的输入!
编辑:为了回应一些答案,我正在使用的代码需要与一些非常古老的遗留系统一起使用。虽然在 C99 的假设上进行操作会很好,但我们真的不能保证他们会拥有它。