Objective c 为什么可以';我不能在开关块中创建一个变量吗?
奇怪:Objective c 为什么可以';我不能在开关块中创建一个变量吗?,objective-c,Objective C,奇怪: switch(type) { case NSFetchedResultsChangeInsert: int x = 5; // error: "Expected expression before int" break; } 因此无法在开关盒块中创建局部变量?是否尝试添加大括号 switch(type) { case NSFetchedResultsChangeInsert: { int x =
switch(type) {
case NSFetchedResultsChangeInsert:
int x = 5; // error: "Expected expression before int"
break;
}
因此无法在开关盒块中创建局部变量?是否尝试添加大括号
switch(type) {
case NSFetchedResultsChangeInsert:
{
int x = 5; // error: "Expected expression before int"
break;
}
}
如果你把箱子做成一个实际的木块,它能起作用吗?类似于
案例foo:{intx=5;…}
?请记住,C语言中的switch/case
只是围绕几个跳转目标的一个极薄的包装,其他什么都没有。这就是为什么达夫的设备如此巧妙。出于某种原因,你需要声明一个新的作用域。我的C不够好,无法知道。这是C标准的一个奇怪之处。有一些奇怪的语法边缘情况[我经常遇到]阻止编译器“正常工作”。