Откуда взялись синко go? (г cc c) - PullRequest
1 голос
/ 27 апреля 2020

Пару дней go все работало нормально, но, пытаясь сегодня снова использовать, мой редактор кода больше не может найти sincos, и G CC выдает мне предупреждение, что он не может найти sincos при компиляции.

Вот код:

// file: main.c 

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

Использование g cc:

$ 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, но он компилируется и работает нормально. Я просто раздражен этими предупреждениями. Кто-нибудь знает, что не так?

1 Ответ

3 голосов
/ 27 апреля 2020

Добавьте следующее в начало файла, чтобы включить расширение gnu:

#define _GNU_SOURCE
#include <math.h>

Это предотвратит появление предупреждений. Обратите внимание, что это расширение glibc, а не часть стандарта C.

...