我正在使用 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/