2015-03-18 67 views
1

這些速度是否相等?編譯後sizeof轉換爲常數嗎?

return someNumber/sizeof(myStruct); // Pretend sizeof returns 88 always. 

return someNumber/88; 

我不確定如果編譯器的sizeof計算每一次或寫入一個常數(從而使得它的安全對我來說,包括的sizeof(),而不是一個常數)。

+0

不用擔心sizeof – UmNyobe 2015-03-18 23:22:38

+1

'sizeof'是一個編譯時操作符。 – chris 2015-03-18 23:23:30

回答

8

是的。編譯器在編譯時知道sizeof(myStruct),並將其替換爲適當的常量。

對於C++中的sizeof表達式,總是如此。

注意:這意味着,例如,sizeof(a++)而不是增量a

+0

我感覺好像人們只要發現'sizeof(a ++)'就會發生一次真正的醜陋。 – Bukes 2015-03-18 23:44:01

相關問題