小编kh9*_*h99的帖子

做..内部开关

我找到了一些具有这种结构的C代码:

switch (n) {
  do {
     case 1:
       // do some things
       if (some condition)
          goto go_on;
     case 2:
       // do some things
       if (some condition)
          goto go_on;
     case 3:
       // do some things
       if (some condition)
          goto go_on;
  } while (1);
  do {
     case 4:
       // do some things
       if (some condition)
          goto go_on;
     case 5:
       // do some things
       if (some condition)
          goto go_on;
  } while (1);
}

go_on:
Run Code Online (Sandbox Code Playgroud)

我在C中编程多年(多年前)并且会认为这将是语法错误.我认为它与优化循环有关,但我想知道是否有人可以解释它的作用.while(1)到达时会发生什么,它是否有效地返回到交换机?特别是为什么有两个人在那里做什么呢?

顺便说一句,我希望开始使用的讨论goto,或者如果这是糟糕的设计.我没有写这个,我假设作者这样做了,因为它使循环运行尽可能快.

c optimization loops switch-statement

15
推荐指数
2
解决办法
4006
查看次数

标签 统计

c ×1

loops ×1

optimization ×1

switch-statement ×1