首页 > 后端开发 > C++ > C 17 可以在'if”条件内声明变量吗?

C 17 可以在'if”条件内声明变量吗?

Linda Hamilton
发布: 2024-12-02 09:15:13
原创
743 人浏览过

Can C  17 Declare Variables Inside an 'if' Condition?

“if”表达式中的 C 变量声明:在 C 17 中解决

在 C 中,在“if”语句的条件表达式中声明变量一直是一个长期存在的问题局限性。从 C 17 开始,此限制已被取消。

以前,在“if”条件中声明的变量的作用域为“if”语句的子语句。禁止将声明括在括号中,每个条件只允许有一个声明。在需要在条件内初始化变量的情况下,此限制很不方便。

考虑代码片段:

bool a = false, b = true;

if (bool x = a || b) // Cannot declare x within the condition
{

}
登录后复制

要在“if”范围内将 x 初始化为 false,需要使用括号由于运算符优先级。但是,不允许使用括号,要求 x 在“if”之外声明。这将声明泄露到了更广泛的范围。

在 C 17 中,这个约束已经放宽。以下代码现在有效:

if (int a = Func1(), b = Func2(); a && b)
{
    // Do stuff with a and b.
}
登录后复制

注意“;”的使用将声明与条件分开。这允许多重声明并在适当的情况下使用括号。

因此,以前不符合要求的内容现在通过 C 17 的引入而成为可能。

以上是C 17 可以在'if”条件内声明变量吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板