使用GCC将数学库链接到C90代码

使用GCC将数学库链接到C90代码,gcc,math.h,c89,Gcc,Math.h,C89,我想利用数学库编译一个简单的C90代码: 主要条款c: 但它没有编译。以下是错误消息: main.c: In function ‘main’: main.c:7:25: error: ‘M_PI’ undeclared (first use in this function) main.c:7:25: note: each undeclared identifier is reported only once for each function it appears in 我的问题是,为什么?

我想利用数学库编译一个简单的C90代码:

主要条款c:

但它没有编译。以下是错误消息:

main.c: In function ‘main’:
main.c:7:25: error: ‘M_PI’ undeclared (first use in this function)
main.c:7:25: note: each undeclared identifier is reported only once for each function it appears in

我的问题是,为什么?C90标准是否禁止使用数学库?

M#PI通常声明为宏,并且有一个明确的保护
#if!已定义(\u ANSI\u SOURCE)
(至少在OSX中),这表明ANSI实现不支持它


对于gcc,您还可以使用
-std=c90
强制c90

M#PI通常声明为宏,并且有一个显式保护
#if!已定义(\u ANSI\u SOURCE)
(至少在OSX中),这表明ANSI实现不支持它


对于gcc,您还可以使用
-std=c90
强制c90

当需要严格的iso标准时,不定义M_PI。请在第页的“三角函数”下查看。建议在使用-ansi时,自己定义它:

#define M_PI 3.14159265358979323846264338327

当需要严格的iso标准时,未定义M_PI。请在第页的“三角函数”下查看。建议在使用-ansi时,自己定义它:

#define M_PI 3.14159265358979323846264338327
#define M_PI 3.14159265358979323846264338327