是在编译时评估的C 文字中的算术操作
Are arithmetic operations on literals in C++ evaluated at compile time?
在此, C#
提出了类似的问题:
在编译时评估C#中的文字算术操作吗?
是和java
:
是在编译时间或运行时间计算的文字上的算术操作吗?
考虑C ,是否在运行时间或编译时间?中评估以下计算?第一个是定义内置类型,第二个是函数参数。
但是,请考虑所有4种基本算术操作以及其他内置类型,例如int
而不是下面的double
。
-
double testDouble = 2.0 + 2.0;
-
aUserDefinedType testUserDefinedTypeObject ( aMemberVariable*std::pow(someOtherVariable, 1.0/8.0) );
它取决于您的编译器及其在构建代码时的优化级别。
编译时间评估没有内在的保证,但是大多数编译器将在打开优化时评估编译时间的恒定表达式。
也有constexpr,它也可以帮助编译器知道在编译时可以评估的内容。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- constexpr 函数中的非文字(通过 std::is_constant_evaluated)
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何使用字符串文字作为宏参数
- 有没有办法从非C/C++文件中读取C++原始字符串文字的内容
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 构造<int>具有 2 个字符串文字的向量
- 将数字打印成文字
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 为什么一个向量上的多线程操作很慢
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 位移操作和位掩码未检测到重复字符
- 是在编译时评估的C 文字中的算术操作