如何在C语言中将rpm转换为rad/s?
如何在C语言中将rpm转换为rad/s?我正在使用Altera Monitor程序从rpm计算rad/s。但当我使用2*pi/60时,它说“pi”并没有声明。我已经包括了数学。h仍然是同一个问题 当包含vhdl浮点库时,我还有另一个问题。我使用的是Quatus 16.1版本。我试图包括 图书馆ieee; 使用ieee.float_pkg.all 错误(10481):uart处的VHDL Use子句错误。vhd(27):设计库“ieee_proposed”不包含主单元“float_pkg”。验证库中是否存在主单元并已成功编译 如何解决这个问题 使用gcc(和许多其他编译器)时,pi的常数在如何在C语言中将rpm转换为rad/s?,c,vhdl,intel-fpga,C,Vhdl,Intel Fpga,如何在C语言中将rpm转换为rad/s?我正在使用Altera Monitor程序从rpm计算rad/s。但当我使用2*pi/60时,它说“pi”并没有声明。我已经包括了数学。h仍然是同一个问题 当包含vhdl浮点库时,我还有另一个问题。我使用的是Quatus 16.1版本。我试图包括 图书馆ieee; 使用ieee.float_pkg.all 错误(10481):uart处的VHDL Use子句错误。vhd(27):设计库“ieee_proposed”不包含主单元“float_pkg”。验证库
math.h
中定义为:
然而,C标准并不能保证这一点,因此,如果您的代码需要可移植,那么您应该对pi有一个偶然性定义。在
math.h
中经常定义的常量是M_pi
或有时是pi
,但不是pi
。但是这些常量在C标准中都没有提到,因此您不应该依赖它,而应该定义自己的常量,例如使用您期望的名称:
#define pi 3.14159265358979323846
这确实并不总是正确的,例如,尽管在GlibC中可用,“这些常量来自Unix98标准,在4.4BSD中也可用;因此,只有在定义了“\u BSD\u SOURCE”或“\u XOPEN\u SOURCE=500”或更通用的功能选择宏时,才会定义它们。默认功能集包括这些常量。”我想Altera使用的是GCC。@AnttiHaapala:你可能是对的,但我从来没有遇到过不定义M_PI的情况,至少对C来说是这样(C++是另一回事)gcc pi.c-lm-pedantic-std=c11example@PaulR:对于Microsoft编译器,包括
M_PI
在内的非标准常量由\u USE\u MATH\u DEFINES
保护,必须在全局或包含MATH.h()之前进行定义。@AnttiHaapala:Altera NIOSII编译器是带有Newlib的GCC。在Newlib的math.h中,M_PI
仅由\uu STRICT\u ANSI\uu
保护(因此,当使用-pedantic-std=c11
时,它是未定义的)。为了便于携带,您可能更容易定义自己的常量。请在标记时阅读标记说明,rpm
代表Red Hat/rpm Package Manager!我不明白你为什么不直接输入pi的值,或者#定义它。查找pi的值不需要SO问题!
#define pi 3.14159265358979323846