辛科斯去哪儿了? (海湾合作委员会)

Where did sincos go? (gcc c)

几天前它工作正常,但今天再次尝试使用时,我的代码编辑器再也找不到 sincos,GCC 向我发出警告,说它在编译时找不到 sincos。

代码如下:

// file: main.c 

#include <math.h>                                                                                                  
int main() {                                                                                                                         
    double sin, cos;                                                                                                     
    sincos(0.0, &sin, &cos);                                                                                             
    return 0;                                                                                                    
}        

使用 gcc:

$ gcc main.c -lm

   x.c: In function ‘main’:
x.c:5:2: warning: implicit declaration of function ‘sincos’ [-Wimplicit-function-declaration]
    5 |  sincos(0.0, &sin, &cos);
      |  ^~~~~~
x.c:5:2: warning: incompatible implicit declaration of built-in function ‘sincos’
x.c:2:1: note: include ‘<math.h>’ or provide a declaration of ‘sincos’
    1 | #include <math.h>
  +++ |+#include <math.h>
    2 |

它说我应该包括 math.h 但我还是这样做了。 它说它找不到 sincos 但它编译并运行良好。我只是对这些警告感到恼火。有人知道怎么回事吗?

将以下内容添加到文件顶部以启用 gnu 扩展:

#define _GNU_SOURCE
#include <math.h>

这将阻止警告。请注意,这是一个 glibc 扩展,而不是 C 标准的一部分。