【问题标题】:Way to declare float compile-time constant in C在 C 中声明浮点编译时常量的方法
【发布时间】:2017-11-06 00:57:44
【问题描述】:

我知道我可以使用枚举在 C 中为整数声明一个命名编译时常量,但是有没有办法在 C 中为浮点数声明命名编译时常量,而不使用宏(我知道 C++有constexpr,但我现在严格使用C)?也非常感谢包含特定于编译器的 C 语言扩展的答案。

【问题讨论】:

  • 什么上下文要求你有一个编译时常量浮点数?
  • 你不认为你的编译器会知道如何做正确的事吗?有哪些严重损坏的例子?
  • 没有与 enum 等效的浮点数
  • 您需要在 C 中使用宏。
  • (a) 你所要求的——声明常量——不是你想要的——快速代码或小代码。编译器自己决定是否使用立即数、从只读数据页加载常量、动态计算常量、将常量折叠成更大的表达式或其他选项。 (b) 您可以使用static const float foo = value; 声明常量。 (c) 你想要的可能没有帮助;加载常量所花费的时间几乎肯定不会显着减慢您的代码。

标签: c floating-point compile-time-constant


【解决方案1】:

使用 const float 数组。 这将产生浮点类型的常量数据。 const float *arr[3] = {11.21,21.31,31.23}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多