编译后sizeof是否转换为常数?

时间:2015-03-18 23:21:07

标签: c++ compilation sizeof

这些速度是否相同?

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

return someNumber / 88;

我不确定编译器是否每次都计算sizeof或写一个常量(从而使我可以安全地包含sizeof()而不是常量)。

1 个答案:

答案 0 :(得分:8)

是。编译器在编译时知道sizeof(myStruct),并用适当的常量替换它。

对于C ++中的sizeof表达式,这总是如此。

注意:这意味着,例如,sizeof(a++) 不会增加a