是在编译时评估的C 文字中的算术操作

Are arithmetic operations on literals in C++ evaluated at compile time?

本文关键字:操作 文字 编译 评估      更新时间:2023-10-16

在此, C#提出了类似的问题:

在编译时评估C#中的文字算术操作吗?

java

是在编译时间或运行时间计算的文字上的算术操作吗?

考虑C ,是否在运行时间或编译时间?中评估以下计算?第一个是定义内置类型,第二个是函数参数。

但是,请考虑所有4种基本算术操作以及其他内置类型,例如int而不是下面的double

  • double testDouble = 2.0 + 2.0;
  • aUserDefinedType testUserDefinedTypeObject ( aMemberVariable*std::pow(someOtherVariable, 1.0/8.0) );

它取决于您的编译器及其在构建代码时的优化级别。

编译时间评估没有内在的保证,但是大多数编译器将在打开优化时评估编译时间的恒定表达式。

也有constexpr,它也可以帮助编译器知道在编译时可以评估的内容。