編譯器

將重複100次的迴圈,改寫成將主體並排4次份的迴圈展開,次數的判斷與分支會變成幾次?(假設100可被4整除)

  1. A100次
  2. B25次
  3. C400次
查看答案與解析

正確答案:B. 25次

將主體並排4次份後,一次重複就會進行原本4次份的處理,所以重複次數成為 100 ÷ 4 = 25次,次數的判斷與分支也減少為25次。與原本的100次相比,分支等開銷變成四分之一。若次數不能被4整除,就在後面追加一個處理剩餘部分的短迴圈。100次是不展開時的次數,400次則是誤把主體的處理數量相乘得到的值。

  • A. 100次是不展開時的次數。
  • B. 正確。100 ÷ 4 = 25次。
  • C. 400次是誤用乘法得到的值。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 從C語言的程式到產生執行檔的一般流程,下列何者正確?
  2. 透過小視窗檢視所產生機器碼的一小段序列,並將無用的指令組合替換為更好的指令,這種最佳化稱為什麼?
  3. 在上方程式碼中,將 sq 行內展開之後接著生效的最佳化,以及其結果,下列何者正確?
  4. 關於軟體管線化(software pipelining)的說明,下列何者正確?
  5. 在嚴格的設定下,編譯器不會擅自將浮點數的加法 (a + b) + c 重新排列為 a + (b + c),其理由下列何者正確?

這個領域的比較