【发布时间】:2009-02-12 15:12:06
【问题描述】:
在C编程语言中,我的理解是变量只能在代码块的开头定义,并且变量将具有声明它的块的范围。考虑到这一点,我想知道像本例那样人为地创建新范围是否被认为是不好的做法:
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}
假设在宏定义中将 TRUE 设置为 1,这段代码会被认为是“好代码”,还是会让经验丰富的程序员一想到它就畏缩?
感谢您的意见!
编辑:为了回应一些答案,我正在使用的代码需要与一些非常古老的遗留系统一起使用。虽然在 C99 的假设上进行操作会很好,但我们真的不能保证他们会拥有它。
【问题讨论】:
-
afaik,{} 有自己的范围正弦 ansi C(大约是 1990 年)
-
典型的用例是调试,您可以轻松地在 if (42) 和 if (0) 之间切换,而不是评论。
-
你的标题根本没有真正描述这个问题。似乎您在问定义 TRUE 是否是一种好习惯。
标签: c if-statement