→ tinlans:老實說,我比較好奇原 po 整個程式分成幾個檔案來寫。 05/15 19:07
→ tinlans:因為他好像很在意 source code 膨脹這件事。 05/15 19:08
推 andyjy12:我碰過的情況,for 比while 快不少.. 05/15 21:11
推 VictorTom:其實source code膨脹不是問題, 規模大的程式沒什麼理由 05/15 23:29
→ VictorTom:在意else if/switch這種差常數行的問題; 推y大說的, 重 05/15 23:29
→ VictorTom:要的是程式碼對於意圖的表達能力:) 05/15 23:30
→ tinlans:3F 的問題很容易解釋。其實並不是 for 跟 while 的差別, 05/16 03:58
→ tinlans:而是 compiler 有沒有辦法在編譯期知道 iteration 數。 05/16 03:58
→ tinlans:如果寫 for(;;) { ... } 這種的保證跟 while 一樣慢。 05/16 03:59
→ tinlans:其實不管你 C 寫 for 還是 while,在 compiler 看來都只分 05/16 04:00
→ tinlans:三種類型。1. iteration 數已知。2. iteartion 數未知, 05/16 04:01
→ tinlans:但確定 loop induction variable 是哪個。3. 都不知道。 05/16 04:01
→ tinlans:1. 和 2. 都叫 DO-LOOP,3. 稱做 WHILE-LOOP。 05/16 04:02
→ tinlans:其中 WHILE-LOOP 是最難最佳化的。而 WHILE-LOOP 並不是你 05/16 04:03
→ tinlans:在 C 寫了 while 就是,也不會因為你寫了 for 就不是。 05/16 04:03
→ tinlans:是哪種完全取決於 loop 實際上的特徵。 05/16 04:04
推 VictorTom:再推t大解釋:) 05/16 13:28