編譯器
編譯器的最佳化必須遵守的基本條件,下列何者正確?
- A一定要使指令數量比原本的程式減少一半以下
- B只要變快,程式的輸出稍有改變也無妨
- C對於正確的程式,不改變外部可見的結果
查看答案與解析
正確答案:C. 對於正確的程式,不改變外部可見的結果
最佳化是為了讓程式變快或變小而進行的轉換,但不得改變正確撰寫之程式的輸出或寫入檔案等外部可見的行為。在這個條件之下,才能對調計算順序,或刪除不需要的計算。指令數量能減少多少視情況而定,並沒有減半以下這種規定。可以改變結果的情況,僅限於使用者明確選擇了例如容許浮點數重新排列的設定時。
- A. 能減少的量並沒有規定。
- B. 不能為了速度而改變結果。
- C. 正確。不改變外部可見的結果是大原則。