精華區beta Programming 關於我們 聯絡資訊
※ 引述《lolij.bbs@ptt.cc (柔麗招來)》之銘言: > ※ 引述《leicheong.bbs@bbs.sayya.org (理昌)》之銘言: > : 以下是這段程式館碼在VC7中compile的結果: > 因為工作的關係, 時常使用 Intel C++ Compiler. > 這種 code 經過 ICC 最佳化之後, 不會有任何運算出現. > 簡單的說, 有算跟沒算從外表看不出來, 因此不需要真的產生程式碼. > 如果最後加一行 printf("%d", b); > 那麼... compile 出來的組語, 跟 printf("10"); 是一樣的 > 沒有 a 也沒有 b 會佔用記憶體, 不需要存取, 也沒有 b+=a 的過程. > 僅供參考. 對這部份有一點疑問 printf 應該存在於 CRT 已編譯完成的函式庫, 還能被 compiler 最佳化嗎? open source 的環境我比較不了解 但在 windows 這樣的環境下, 不管是從 lib 檔把機器碼複製進來 或是僅 link 到 dynamic library 的對應函式 compiler 能做的應該只是把 "%d" 的pointer和 b 推進 stack 後呼叫 printf 而沒辦法跑進去最佳化吧? -- ▄▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄▄▄ <telnet://bbs.cs.nctu.edu.tw> █▄▄▄▄█ █ ▄▄▄▄▄█ Player: coldstar ▄█▄▄▄▄█ ▄▄▄█ █▄▄▄▄▄ From: scarlet.Dorm8.NCTU.edu.tw ☆ 次世代BS2 ☆ 可申請個人板 150MB 超大相簿 http://pic.bs2.to 資訊人 250MB