“if”表达式中的变量声明:澄清规则
“if”表达式条件中声明的变量一直是问号程序员有一段时间了。 C 标准最初概述了这些变量的范围,但在括号和多重声明方面仍然存在歧义。
在提供的示例中,当变量声明周围使用括号时,编译器无法编译:
if((int a = Func1())) { // Fails to compile. }
此行为还扩展到单个条件中具有多个声明的情况,这是由于声明必须紧接在条件本身之前的规则所致。括号打破了这个规则。
但是,随着 C 17 的引入,情况发生了变化:
if (int a = Func1(), b = Func2(); a && b) { // Do stuff with a and b. }
现在,可以使用 ; 在括号内声明变量。将声明与条件分开。此增强功能扩展了“if”条件的灵活性。
以上是C 17 如何改变'if”表达式中变量声明的规则?的详细内容。更多信息请关注PHP中文网其他相关文章!