c - 使用符合 C89 标准的 M_PI

标签 c math c89

我正在使用 C 并试图访问常量 M_PI (3.14159...)。我导入了 math.h 头文件,但 M_PI 常量仍未定义。通过在 StackOverflow 上进行一些搜索,我发现我需要将 #define _USE_MATH_DEFINES 添加到我的代码中(参见下面的示例代码)。这在正常编译时工作正常,但我需要能够为我正在做的工作使用 std=c89 标志进行编译。

我应该如何从某些 C89 代码访问 M_PI?

最佳答案

符合标准的库文件math.h不仅不需要,而且实际上不能默认定义M_PI。在此上下文中,“默认”意味着 M_PI 只能通过特定于编译器的技巧来定义,最常见的是通过使用保留标识符来定义未定义的行为。

只需自己定义常量即可(您可以随意使用名称M_PI,但是如果您希望能够使用不合格的编译器编译代码,则必须首先检查 M_PI 尚未定义)。为了约定,不要将 M_PI 定义为 pi(的近似值)以外的任何值。

关于c - 使用符合 C89 标准的 M_PI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20274809/

相关文章:

c - 检查点是否位于 x 轴、y 轴或原点上的程序

c - Glade GTK 访问各个小部件

android - 如何在 Android 中实际显示数学公式

javascript - 如何制作齿轮啮合

python - 使用列表理解查找素数

c - 函数声明隐藏全局声明

c++ - linux上的gcc使用哪个线程库来实现OpenMP?

C LibPCRE TRUE/FALSE 问题

c - ANSI C 函数声明中隐式 int 返回类型的规则

c - 为什么使用不在 UB 范围内的标识符而不是错误