воть :
static double aa,bb,cc,dd,ff;
static char stroka[10]="12.6L",*ended;
static char sout1[5];
static int jj;
const double e2 = 0.006739496742337;
static double gg;
void progra(void)
{
//gg = strtod(stroka,&ended); // ругаетсо
jj = round(ff); // работает
jj = lrint(ff); // работает
bb = 1-e2*(pow(sin(aa),2)); //работает
}
int main(void)
{
progra();
snprintf(sout1,4,"%f",gg);
sprintf(sout1,"%f",gg);
}
участники праздника stdio.h math.h в Makefile указаны ключи -lc (-lm не работают математические функции) при раскоментарии strtod при компиляции выкидывает следующее...
/usr/local/atmel/bin/avr-gcc -g -Wall -Os -mmcu=atmega128 -c -o probe.o probe.c
/usr/local/atmel/bin/avr-gcc -g -Wall -Os -mmcu=atmega128 -Wl,-u,vfprintf -lprintf_flt -lgcc -lc -o probe.elf probe.o
/usr/local/atmel/lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/libc.a(fp_powsodd.o):../../../libm/fplib/fp_powsodd.S:59: relocation truncated to fit: R_AVR_13_PCREL against symbol `__mulsf3' defined in .text section in /usr/local/atmel/lib/gcc/avr/3.4.6/avr5/libgcc.a(_mul_sf.o)
/usr/local/atmel/lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/libc.a(fp_powsodd.o):../../../libm/fplib/fp_powsodd.S:69: relocation truncated to fit: R_AVR_13_PCREL against symbol `__mulsf3' defined in .text section in /usr/local/atmel/lib/gcc/avr/3.4.6/avr5/libgcc.a(_mul_sf.o)
make: *** [probe.elf] Error 1
да и вообще очень непонятно бывают себя ведут фунции sprintf ....
кучу всего прошерстил ....основная мысль крутится возле теории неправильности указания порядка подключения либ... устал короче.
собираю под линупсом ...gcc 3.4.6.... пробовал и под WinRarом ....та же песня (((
хотел попробовать под CodeVision ... но там упс .. нету кучи функций как то нормального округления,работы со строками (((
вспоможите люди добжие ))