[問題] 請問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