1
這些速度是否相等?編譯後sizeof轉換爲常數嗎?
return someNumber/sizeof(myStruct); // Pretend sizeof returns 88 always.
和
return someNumber/88;
我不確定如果編譯器的sizeof計算每一次或寫入一個常數(從而使得它的安全對我來說,包括的sizeof(),而不是一個常數)。
這些速度是否相等?編譯後sizeof轉換爲常數嗎?
return someNumber/sizeof(myStruct); // Pretend sizeof returns 88 always.
和
return someNumber/88;
我不確定如果編譯器的sizeof計算每一次或寫入一個常數(從而使得它的安全對我來說,包括的sizeof(),而不是一個常數)。
是的。編譯器在編譯時知道sizeof(myStruct)
,並將其替換爲適當的常量。
對於C++中的sizeof
表達式,總是如此。
注意:這意味着,例如,sizeof(a++)
將而不是增量a
。
我感覺好像人們只要發現'sizeof(a ++)'就會發生一次真正的醜陋。 – Bukes 2015-03-18 23:44:01
不用擔心sizeof – UmNyobe 2015-03-18 23:22:38
'sizeof'是一個編譯時操作符。 – chris 2015-03-18 23:23:30