2015-03-18 34 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

相关问题