[語法] 無規則性固定數值輸入的處理方式?
這是最近作夢夢到的..我工作上寫了一段 code ,主管看了之
後,要求要做更改,但我覺得更改後的可讀性與效能並不會比
較好,如果換做大家的話不知道會覺得怎樣寫比較好?
[問題]
使用者輸入一個數字,數字是沒有規則性的固定數字(共十個
數字,彼此無相依性,所以沒辦法簡化),要經過邏輯判斷後
,呼叫一個固定的 func ,傳入相對應的數值(此數值有規則
性,由0x01->0x10),以取得結果。
[我寫的程式碼]
void main(void)
{
...
func(x);
...
}
void func1(int x)
{
if(x==1) func2(0x01);
else if(x==6) func2(0x02);
else if(x==9) func2(0x03);
...共10個 if 判斷
}
[主管的要求]
void func1(int x)
{
switch(case)
{
case 1:
func2(0x01);
break;
case 6:
...
}
}
或是使用 array 存放數據,再跑迴圈做判斷。
我的想法是,用 switch 的方式並不見得比使用 if,else 來
得好,可讀性是差不多,但程式碼行數會多不少,要是整個
程式裡遇到不少類似的狀況,都用 switch 的方式的話,程式
碼就會變得"很大".
而改用迴圈的方式,因為輸入數值只有十種,所以用迴圈的方
式,並無法簡化程式碼,行數也差不多。而且因為多了迴圈與
array 的使用,執行效能與記憶體空間使用上反而變差了(我
們寫的是系統程式,效能上必須要做考量),可讀性也降低了
些..
因為是工作,所以主管要求什麼我就只好照辦,但心裡還是有
些..,不知道換做是板友的話,會怎麼撰寫這段 code 呢?
喔~對了~要是我的想法有錯的話,也請板友多多指教,感謝
~^____^
--
然後..這一切都是夢..:P
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.216.6
推
05/15 09:19, , 1F
05/15 09:19, 1F
→
05/15 09:20, , 2F
05/15 09:20, 2F
→
05/15 09:20, , 3F
05/15 09:20, 3F
→
05/15 09:21, , 4F
05/15 09:21, 4F
→
05/15 09:24, , 5F
05/15 09:24, 5F
→
05/15 09:25, , 6F
05/15 09:25, 6F
推
05/15 09:43, , 7F
05/15 09:43, 7F
→
05/15 09:43, , 8F
05/15 09:43, 8F
→
05/15 09:44, , 9F
05/15 09:44, 9F
→
05/15 09:44, , 10F
05/15 09:44, 10F
→
05/15 13:13, , 11F
05/15 13:13, 11F
→
05/15 13:14, , 12F
05/15 13:14, 12F
推
05/15 13:20, , 13F
05/15 13:20, 13F
推
05/15 18:31, , 14F
05/15 18:31, 14F
→
05/16 18:19, , 15F
05/16 18:19, 15F
→
05/16 18:20, , 16F
05/16 18:20, 16F
→
05/17 20:38, , 17F
05/17 20:38, 17F
→
05/17 20:39, , 18F
05/17 20:39, 18F
→
05/17 20:39, , 19F
05/17 20:39, 19F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 7 篇):