Вообщем там есть такие прототипы:
Код
extern double atan _PARAMS((double));
extern double cos _PARAMS((double));
extern double sin _PARAMS((double));
extern double tan _PARAMS((double));
extern double tanh _PARAMS((double));
extern double frexp _PARAMS((double, int *));
extern double modf _PARAMS((double, double *));
extern double ceil _PARAMS((double));
extern double fabs _PARAMS((double));
extern double floor _PARAMS((double));
extern double cos _PARAMS((double));
extern double sin _PARAMS((double));
extern double tan _PARAMS((double));
extern double tanh _PARAMS((double));
extern double frexp _PARAMS((double, int *));
extern double modf _PARAMS((double, double *));
extern double ceil _PARAMS((double));
extern double fabs _PARAMS((double));
extern double floor _PARAMS((double));
допустим нужно посчитать синус:
Код
#include <avr32/io.h>
#include "compiler.h"
#include "board.h"
#include "math.h"
void main(void)
{
double pi=3.14;
double s;
s=sin(pi);
}
#include "compiler.h"
#include "board.h"
#include "math.h"
void main(void)
{
double pi=3.14;
double s;
s=sin(pi);
}
При компиляции ошибка: undefined reference to `sin'
Если агрумент просто написать как:
Код
#include <avr32/io.h>
#include "compiler.h"
#include "board.h"
#include "math.h"
void main(void)
{
double pi=3.14;
double s;
s=sin(3.1428571428571428571428571428571);
}
#include "compiler.h"
#include "board.h"
#include "math.h"
void main(void)
{
double pi=3.14;
double s;
s=sin(3.1428571428571428571428571428571);
}
То ошибки нет.
Пробывал тип возращаемого значения как extern double делать, тоже ошибка.
Скажите как правильно пользоваться математическими функциями?