const int thing = 1234;
int func(int hello)
{
return hello/(thing*123+321);
}
是(thing*123+321)
在編譯時計算的?使用靜態/全局const原語進行計算是否在編譯時發生?
如果thing
是一個用戶定義的類型int operator*
它也會發生在編譯時?
如果thing
是一個浮點數或雙精度浮點數也會在編譯時發生嗎?
如果我在運行時強制更改thing
將(thing*123+321)
保持不變?
您可以自己獲得答案如果你看看生成的代碼! – hansmaad
@hansmaad我需要知道更多的答案,而不是我的特定編譯器碰巧做的。 – David
生成的代碼是二進制(或組件,如果一個指定適當的編譯器選項)。它不會幫助不懂彙編語言的人。 – cHao