gpt4 book ai didi

c - 在 switch case 中声明变量

转载 作者:太空狗 更新时间:2023-10-29 15:12:46 27 4
gpt4 key购买 nike

为什么在 switch-case 的不同 case 中声明相同的变量名时会收到警告。

switch()
{
case 1:
int a;
break;

case 2:
int a;
break;

}

有没有办法在不收到警告的情况下执行此操作。 (没有把它放在 switch-case 之前)

最佳答案

原因是两个声明的词法范围都是整个开关体;所有案例都共享该范围。
也就是说,就词法范围而言,就像写

{
int a;
int a;
}

解决方案是将声明包含在另一个花括号范围内。

switch(whatever)
{
case 1:
{
int a;
break;
}

case 2:
{
int a;
break;
}
}

(将 break 放在大括号内部还是外部主要取决于个人喜好。我更喜欢包括整个案例。)

这与这个“无开关”片段的工作原理相同:

{
{
int a;
}
{
int a;
}
}

关于c - 在 switch case 中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56151251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com