基本問題,但想知道最佳化的方法。它是一個關閉例程的代碼塊,有多個進程關閉。在所有的情況下,它應該嘗試關閉所有的流程和階段,但是保持失敗值返回。C嵌入式中的錯誤處理的優化方式
Error_code result=PASS;
<some code>
for i 1 to 10
if((result = operation())!=PASS)
PRINT "FAILURE"
done
if((result = operation())!=PASS)
PRINT "FAILURE"
for i 1 to 10
if((result = operation())!=PASS)
PRINT "FAILURE"
done
return result;
現在的問題是,如果最後一次迭代的通行證,那麼它返回一個PASS,由於操作應該運行的所有10次迭代,並在發生故障的情況下,它只是我們需要返回錯誤碼。因爲它幾乎可以有100個故障,我寫了這樣的代碼: -
Error_code result=PASS;
Error_code tresult=PASS;
for i 1 to 10
if((result = operation())!=PASS) {
tresult = result;
PRINT "FAILURE"
}
if((result = operation())!=PASS) {
tresult = result;
PRINT "FAILURE"
}
for i 1 to 10
if((result = operation())!=PASS)
tresult = result;
PRINT "FAILURE"
done
if(tresult != result)
result = tresult;
return result;
是它的唯一優化的解決方案,或者我們可以做這更好。我無法使用標誌,因爲它有超過100個錯誤變量。 建議任何更好的方法..