人们可以这样做:
case WM_COMMAND:
if (WORD wNotifyCode = HIWORD(wparam))
{
...
}
人们可以这样做:
case WM_COMMAND:
{
WORD wNotifyCode = HIWORD(wparam);
if (wNotifyCode > 1) {
...
}
}
但是不能做到:
case WM_COMMAND:
if ((WORD wNotifyCode = HIWORD(wparam)) > 1)
{
...
}
在这里使用for语句我认为是误导性的:
case WM_COMMAND:
for (WORD wNotifyCode = HIWORD(wparam); wNotifyCode > 1; wNotifyCode = 0)
{
...
}
因为它看起来很像一个循环正在发生 – 而追随我的可怜的笨蛋必须破译这个垃圾.
但是,是否没有语法结构将if语句的优雅结合起来,该语句包含局部变量声明,并能够测试其值不为零的值?
最佳答案 有时可读性和可维护性比保存一行代码更重要.
如果您需要本地变量,那么在这种情况下一定要明确地介绍它,如果您想要它有限,可能会引入一个额外的范围 – 但您也应该考虑是否可以在几个地方使用HIWORD宏 – 这样你根本不需要任何技巧.