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