【发布时间】:2015-03-13 01:54:43
【问题描述】:
假设:
switch ( test ) {
// Set some variables, call some functions ?
int x = 1 ;
int y = function(x) ;
//
case 1 :
// Process for test = 1
...
break;
case 5 :
// Process for test = 5
...
break;
default :
// Process for all other cases.
...
}
执行我在第一个 case 之前添加的那段额外代码是否“合法”?我从未在示例中看到过这种情况。
【问题讨论】:
-
如果你尝试编译它会发生什么?
-
可以,但不推荐。
-
你为什么不想把你的代码放在开关之前?
-
C++ 不允许这样的跳转。 C原谅但不知道是否初始化。
-
@lurker,它使用 Borland C++ Builder 2009 编译,这让我感到惊讶,因此我提出了问题。这是一个简单的解决方法(将代码放在 switch() 之前),但出于好奇,我尝试了它,而且它编译的仅仅是事实就提出了问题。