gpt4 book ai didi

C: switch 语句错误: "this is the first entry overlapping that value"

转载 作者:行者123 更新时间:2023-11-30 14:41:40 30 4
gpt4 key购买 nike

我目前正在研究我的 LED 灯带,并使用十六进制颜色代码来处理它。
现在我想通过使用 switch 语句更改颜色代码来制作平滑的彩虹效果。

 1    switch(M0_Color){
2 case 0xff3300 ... 0xffcc00: M0_Color += 0x003300; break;
3 case 0xffff00 ... 0x33ff00: M0_Color -= 0x330000; break;
4 case 0x00ff00 ... 0x00ffcc: M0_Color += 0x000033; break;
5 case 0x00ffff ... 0x0066ff: M0_Color -= 0x003300; break;
6 case 0x0033ff: M0_Color = 0x0025ff; break; //Smoother transition
7 case 0x0025ff ... 0x0005ff: M0_Color -= 0x000500; break;
8 case 0x0000ff ... 0x2000ff: M0_Color += 0x0500ff; break;
9 case 0x2500ff: M0_Color = 0x3300ff; break; //Smoother transition
10 case 0x3300ff ... 0xcc00ff: M0_Color += 0x330000; break;
11 case 0xff00ff ... 0xff0066: M0_Color -= 0x000033; break;
12 case 0xff0033: M0_Color = 0xff0025; break; //Smoother transition
13 case 0xff0025 ... 0xff0005: M0_Color -= 0x000005; break;
14 case 0xff0000 ... 0xff2000: M0_Color += 0x000500; break;
15 case 0xff2500: M0_Color = 0xff3300; break;
16 }

M0_Color 是颜色变量。起始值为0xff3300
显示的代码在循环中运行。
遗憾的是,满足我需求的选择有限,而这是最有吸引力的。
现在,当我编译它时,它会抛出两个错误和一个警告:
**警告**:“指定了空范围”(此处:在代码第 3、5、7、11、13 行中)
**错误 1**:“重复(或重叠)大小写值”(此处:在代码第 8、14 行中)
**错误 2**:“这是与该值重叠的第一个条目”(此处:在代码第 7、13 行中)

非常感谢您的帮助!
提前致谢!

最佳答案

Line 3: case 0xffff00 ... 0x33ff00: 

您首先指定了较高的值。
它相当于说

case 99 ... 10:    //* Specifying an empty range.  You want 10 ... 99
<小时/>
Line 8:  case 0x0000ff ... 0x2000ff

此范围与其上方的范围重叠0x0025ff ... 0x0005ff
每个范围必须是不同的且不重叠。

相当于有两个范围:10 ... 2015 ... 17。它们重叠。
编译器应该为变量16选择哪种case??

<小时/>

最后,这些错误消息非常清晰,并准确解释了问题所在。为什么您阅读本文时遇到困难?

阅读和理解错误消息是编程的核心技能。
(我以前从未见过这些错误,但文本让问题所在变得显而易见)

关于C: switch 语句错误: "this is the first entry overlapping that value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54844345/

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