命名空间
变体
操作

constexpr 说明符 (自 C23 起)

来自 cppreference.com
< c‎ | 语言

使用 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)
  • TBD TBD (p: TBD)

[编辑] 另请参阅

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