2010-05-22 101 views
5

我刚刚将编译器选项从4.0更改为4.2。XCode GCC-4.0 vs 4.2

现在,我得到一个错误:

jump to case label crosses initialization of 'const char* selectorName' 

它工作正常,在4.0

任何想法?

+0

你确定它是不是“只是”一个警告?无论哪种方式,你应该修复你的代码中的错误和/或在这里发布实际的代码。 – 2010-05-22 21:06:57

回答

4

只是一个猜测 - 你在你的switch-case语句的内部声明变量(可能是const char*) - 你应该把这个大小写包装在{}中来解决这个问题。

// error 
case 1: 
    const char* a = ... 
    break; 

// OK 
case 1:{ 
    const char* a = ... 
} 
    break; 
1

你可能申报的情况下,内部的变量,而不包裹这一切在一个括号:

case foo: 
    const char* selectorName; 
    // ... 
    break; 

应该是:

case foo: { 
    const char* selectorName; 
    // ... 
    break; 
}