[问题] 请问case有简化的方法吗?

楼主: Neverfor (八卦蟑螂)   2018-08-31 17:17:18
请问一下 之前在学verilog的时候
有办法用X 或 Z的方式
忽略一个位元或01均可
像是
0010
0011
可以化简成001X
不知道C里面的case有类似这种功能吗?
现在遇到的问题是
我写到很多下面这种
10进制的四位数
switch(select)
{
.
.
.
3100
3101
3102
3103
.
.
}
有很多想把他化简不知道怎么做比较好
除了手动化简 改用矩阵之外
不知道C家族有没有这种化简工具@@
先谢谢了
作者: johnpage (johnpage)   2018-08-31 17:39:00
AND
作者: LPH66 (-6.2598534e+18f)   2018-08-31 19:07:00
如果无法条列出来就回归到一般的 if/else if
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-08-31 19:08:00
C的case很简单,没有这种特异功能。有人把他倒过来写,很妙的是也没问题,但是老是觉得哪里会有side effect.回到你的问题,你这种简化要自己打造,case就当最简单的case用就好。
作者: Uni1122 (淡雪)   2018-08-31 19:48:00
我的想法是,进switch前对select进行预处理,例如 select= select/10
作者: Hazukashiine (私は幸せです)   2018-08-31 19:59:00
switch (h(select)) { ... }
作者: boss0405 (boss)   2018-08-31 21:25:00
case本来就不用照顺序啊,default也可以放在任意位置
作者: soheadsome (师大狗鼻哥)   2018-09-01 18:44:00
有整数范围可以用gcc extension

Links booklink

Contact Us: admin [ a t ] ucptt.com