gpt4 book ai didi

c++ - 在 C switch/case 中声明变量

转载 作者:可可西里 更新时间:2023-11-01 18:38:49 30 4
gpt4 key购买 nike

好吧,这实际上不是问题..

我只是偶尔发现有一种有趣的方法可以在 switch/case block 中声明局部变量。你可以这样写:

switch (action) {
int res;
int value;
case ACTION_OPEN:
res = open(...);
...
break;
case ...
}

所以,我只是想知道除了 gcc 之外还有哪些 C/C++ 编译器支持这种构造?它看起来像一个常见的失败。欢迎对此结构提出任何意见!

最佳答案

switch 主体只是一个普通语句(在您的例子中是一个复合语句,看起来像 { ... }),它可以包含任何废话。包括外壳标签。

Duffs device 滥用了这种开关理念.

许多人没有意识到即使像 switch(0) ; 这样的语句也是有效的语句(它没有复合语句,而是有一个空语句作为正文),尽管它毫无用处。

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

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