首页 >后端开发 >C++ >C 17 如何改变'if”表达式中变量声明的规则?

C 17 如何改变'if”表达式中变量声明的规则?

Linda Hamilton
Linda Hamilton原创
2024-12-13 16:30:13614浏览

How Has C  17 Changed the Rules for Variable Declaration in `if` Expressions?

“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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn