作者Neverfor (八卦蟑螂)
看板C_and_CPP
標題[問題] 請問case有簡化的方法嗎?
時間Fri Aug 31 17:17:18 2018
請問一下 之前在學verilog的時候
有辦法用X 或 Z的方式
忽略一個位元或01均可
像是
0010
0011
可以化簡成001X
不知道C裡面的case有類似這種功能嗎?
現在遇到的問題是
我寫到很多下面這種
10進制的四位數
switch(select)
{
.
.
.
3100
3101
3102
3103
.
.
}
有很多想把他化簡不知道怎麼做比較好
除了手動化簡 改用矩陣之外
不知道C家族有沒有這種化簡工具@@
先謝謝了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.219.126
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1535707041.A.79E.html
※ 編輯: Neverfor (180.217.219.126), 08/31/2018 17:19:09
1F:推 johnpage: AND08/31 17:39
2F:推 LPH66: 如果無法條列出來就回歸到一般的 if/else if08/31 19:07
3F:→ MOONRAKER: C的case很簡單,沒有這種特異功能。有人把他倒過來寫,08/31 19:08
4F:→ MOONRAKER: 很妙的是也沒問題,但是老是覺得哪裡會有side effect.08/31 19:09
5F:→ MOONRAKER: 回到你的問題,你這種簡化要自己打造,case就當最簡單08/31 19:10
6F:→ MOONRAKER: 的case用就好。08/31 19:10
7F:→ Uni1122: 我的想法是,進switch前對select進行預處理,例如 select08/31 19:48
8F:→ Uni1122: = select/1008/31 19:48
9F:推 Hazukashiine: switch (h(select)) { ... }08/31 19:59
10F:推 boss0405: case本來就不用照順序啊,default也可以放在任意位置08/31 21:25
11F:推 soheadsome: 有整數範圍可以用gcc extension09/01 18:44
感謝各位回覆
※ 編輯: Neverfor (180.217.219.126), 09/01/2018 22:40:42