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

Wat*_*ter 1 c++ compilation sizeof

这些速度是否相等?

return someNumber / sizeof(myStruct); // Pretend sizeof returns 88 always.
Run Code Online (Sandbox Code Playgroud)

return someNumber / 88;
Run Code Online (Sandbox Code Playgroud)

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

use*_*751 8

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

对于sizeofC++中的表达式,这总是如此.

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