gpt4 book ai didi

c - 在 C 的 switch 语句中重新声明变量

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:21 24 4
gpt4 key购买 nike

我使用的 switch 语句基本上是这样的:

switch (command):
case '+':
int key;
scanf("%i", &key);
//do stuff
break;
case '-':
int key;
scanf("%i", &key);
//do stuff
break;
....

看起来我不允许沿着案例阶梯重新声明 int key,即使它们作为单独的操作 block 中断。我收到编译错误 redeclaration of 'key' with no linkage 所以我只是使用 key 而没有再次对其进行类型转换。该程序似乎运行良好。

这可以接受吗?安全吗?

最佳答案

这是不合法的,因此也不安全。但它很容易修复。只需在 switch 语句中使用 block 来限制声明的范围:

switch (command):
case '+': {
int key;
scanf("%i", &key);
//do stuff
break;
}
case '-': {
int key;
scanf("%i", &key);
//do stuff
break;
}

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

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