Функция типа long double возвращает странные значения - C (СИ)
Формулировка задачи:
Не могу получить правильный результат long double при вызове функции. Возвращаются странные значения. Где засада не пойму?
Результат:
Почему не возвращается результат long double?
Чувствую себя полным идиотом.
#include <stdio.h>
#include <stdlib.h>
/*
* Simple C Test Suite
*/
long double tstFun(long double ff,int64_t ii,char tpInt) {
if (tpInt) return (long double)(ii);
else ff;
}
int main(int argc, char** argv) {
printf("wrkFun test 1\n");
long double fres;
fres=tstFun(0,256,1);
printf(" %Lf\n",fres);
fres=tstFun(256.58,0,0);
printf(" %Lf\n",fres);
fres=tstFun(87956.5878,0,0);
printf(" %Lf\n",fres);
fres=tstFun(0,256,1);
printf(" %Lf\n",fres);
return (EXIT_SUCCESS);
}wrkFun test 1 256.000000 nan nan 256.000000
Увидел ошибку. return
Решение задачи: «Функция типа long double возвращает странные значения»
textual
Листинг программы
c: In function ‘tstFun’: c:9:9: warning: statement with no effect [-Wunused-value] c: In function ‘main’: c:14:2: warning: ISO C90 forbids mixed declarations and code [-pedantic] c: In function ‘tstFun’: c:10:1: warning: control reaches end of non-void function [-Wreturn-type]