的大小以下情況:動態變化的switch-case
我的系統得到一個硬件信號,並在我的 信號處理程序的時間值寫入到緩存。之後,一個(軟件)信號以時間值作爲參數發送到相應的插槽功能。 插槽常規被正確調用,但在這裏我的問題奠定了在:
在槽函數我有一個簡單的switch-case語句是這樣的:
switch(id) {
case 1:
do something..
id = 2;
break;
case 2:
start_time = val;
id = 3;
break;
case 3:
end_time = val;
id = 1;
break;
}
在這三種情況下,我存儲開始和情況2和3之間的結束時間值和 超出這些時間值我確定硬件 信號之間經過的時間。這工作正常,但現在我必須測量時間有時「更長」, 依賴於參數。這意味着,我不能停止在情況3的測量 我有案例4,5,6等等。什麼是這個「問題」 ,而不需要編寫一個優雅和最佳的解決方案:
if (param < xy) {
switch(id) {
case 1:
...
break;
case 2:
...
break;
} else if (param > xy) {
switch(id) {
case 1:
...;
break;
case 2:
...;
break;
case 3:
...;
break;
case 4:
...;
break;
case 5:
...;
break;
}
}
}
代碼是否也改變了,比如'case 1'?或者不管是哪個if-else塊,通常情況下的代碼是完全一樣的? – Nawaz
不能你使用鏈接列表基本和避免這種類型的邏輯 –
@ Nawaz,不在案件中的代碼不會改變它總是相同的,取決於if-else塊有時有3個或更多... – arge