看板 C_and_CPP 關於我們 聯絡資訊
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出): C 問題(Question): int a = 0, b = 0, c = 0; case 1: a = 1, b = 1; c = a + b; case 2: a = 100000, b = 100000; c = a + b; 宣告的變數型態相同,但值閾不同, 上述兩個case分別的運算量會有差異嗎? 已爬文並作了實驗, 找不到可解答我的問題, 只有運算子不同的運算量:除法 > 加, 減, 乘 或是型態不同的運算量:double > int 而自己的實驗上則是差不多。 也許大家可以提供我該往哪個方向去尋找, 非本科系,目前不知道該下什麼關鍵字才能找到此問題的答案QQ~ 餵入的資料(Input): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.8.232 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1505446465.A.013.html
nh60211as: 算個五百萬次就確定有沒有差距了,可以看計算機結構 09/15 11:37
s4300026: 要測的時候,記得砍掉switch case 09/15 12:13
chuegou: 看編譯器優化成怎樣吧 09/15 12:23
enonrick: 把asm dump 出來就知道啦 09/15 12:26
TianBonBon: 看編譯出來的組語和執行的平台 09/15 12:27
TianBonBon: 這有機會被優化到編譯時期就把運算結果放到變數c了 09/15 12:29
MOONRAKER: 想太多,測也不是這樣測。"閾"是threshold。 09/15 17:58