gpt4 book ai didi

c - 在 C 中混合 'switch' 和 'while'

转载 作者:太空狗 更新时间:2023-10-29 17:24:18 24 4
gpt4 key购买 nike

我最近读了 this page关于奇怪的 C 片段代码。他们中的大多数是可以理解的。但是我不明白这个:

switch(c & 3) while((c -= 4) >= 0){
foo(); case 3:
foo(); case 2:
foo(); case 1:
foo(); case 0:
}

谁能帮我弄清楚这段代码背后的逻辑是什么?它是如何工作的?

最佳答案

duff 的设备评论应该很好地解释了背景,所以我将尝试解释这种情况:

switch 检查 c 的最后 2 位,并跳转到 while 循环内的相应 case 语句。 case 语句下面的代码也被执行。然后控制到达 while 循环的末尾,因此它再次跳转到开头以检查条件是否仍然为真。如果是,则执行循环内的所有语句,并重复循环直到条件为假。初始开关通常确保在 while 循环第一次运行时 c 将是 4 的倍数。

编辑:duff's device on Wikipedia .添加链接以更清楚地说明我所说的“笨蛋的设备评论”的意思。如果您对这个答案投赞成票,请考虑对 interjay 的评论投赞成票。

关于c - 在 C 中混合 'switch' 和 'while',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25592451/

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