命名空间
变体
操作

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)
  • 待定 待定 (p: 待定)

[编辑] 另请参阅

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