命名空间
变体
操作

constexpr 说明符 (自 C23 起)

来自 cppreference.cn
< c‎ | language

使用 constexpr 存储类说明符声明的标量对象是一个常量。它必须根据静态初始化规则进行完全且显式的初始化。它仍然具有适合其声明的链接,并且在运行时存在以获取其地址;它只是在运行时不能以任何方式修改,即编译器可以在任何其他常量表达式中使用其对对象固定值的了解。

此外,用于此类常量的初始化器的常量表达式在编译时进行检查。

浮点类型的初始化器必须使用翻译时浮点环境进行评估。

可以声明为 constexpr 的对象的类型有一些限制。即,以下构造不允许为 constexpr

目录

[编辑] 关键字

constexpr

[编辑] 注释

[编辑] 示例

#include <fenv.h>
#include <stdio.h>
 
int main(void)
{
    constexpr float f = 23.0f;
    constexpr float g = 33.0f;
    fesetround(FE_TOWARDZERO);
    constexpr float h = f / g; // is not affected by fesetround() above
    printf("%f\n", h);
}

输出

0.696969

[编辑] 参考文献

  • C23 标准 (ISO/IEC 9899:2024)
  • 待定 待定 (页码: 待定)

[编辑] 参见

C++ 文档 关于 constexpr 类型说明符