Доброго времени суток...
Пишу функцию которая обрабатывает переменное чмсло параметров и один из них float, так вот с ним и возникает самая большая проблемма, в нутри функции появляються такие значения о которых моя программа даже и догажываеться.
Что я не правильно делаю:
float aa = 5;
db->LogWrite(-1, "%f",aa);
...
va_start(vl,format);
...
case 'f':
fArg = va_arg(vl, float);// вот тут ну не как не появляеться 5 :crash:
if(DRMLIBMSG_MESSAGE_MAX <= (strlen(chFrm) + DRMLIB_LONG_MAX)) break;
сhFrm[1] = 'f';
nSPSize = sprintf(&chFilTxt[nOutSeek],chFrm,fArg);
nOutSeek += nSPSize;
break;
Здравствуйте, merlinJap, Вы писали:
J>Доброго времени суток...
J>Пишу функцию которая обрабатывает переменное чмсло параметров и один из них float, так вот с ним и возникает самая большая проблемма, в нутри функции появляються такие значения о которых моя программа даже и догажываеться.
J>Что я не правильно делаю:
J>J> float aa = 5;
db->>LogWrite(-1, "%f",aa);
J>
J>J>...
J>va_start(vl,format);
J>...
J>case 'f':
J> fArg = va_arg(vl, float);// вот тут ну не как не появляеться 5 :crash:
J> if(DRMLIBMSG_MESSAGE_MAX <= (strlen(chFrm) + DRMLIB_LONG_MAX)) break;
J> сhFrm[1] = 'f';
J> nSPSize = sprintf(&chFilTxt[nOutSeek],chFrm,fArg);
J> nOutSeek += nSPSize;
J> break;
J>
Давай полный текст функции с заголовком. А то мало понятно, например, нафига LogWrite?
Здравствуйте, merlinJap, Вы писали:
J>Доброго времени суток...
J>Пишу функцию которая обрабатывает переменное чмсло параметров и один из них float, так вот с ним и возникает самая большая проблемма, в нутри функции появляються такие значения о которых моя программа даже и догажываеться.
J>Что я не правильно делаю:
J>J> float aa = 5;
db->>LogWrite(-1, "%f",aa);
J>
J>J>...
J>va_start(vl,format);
J>...
J>case 'f':
J> fArg = va_arg(vl, float);// вот тут ну не как не появляеться 5 :crash:
J> if(DRMLIBMSG_MESSAGE_MAX <= (strlen(chFrm) + DRMLIB_LONG_MAX)) break;
J> сhFrm[1] = 'f';
J> nSPSize = sprintf(&chFilTxt[nOutSeek],chFrm,fArg);
J> nOutSeek += nSPSize;
J> break;
J>
как правильно сказал Аноним, читать надо double, потому как все целые значения при
запихивании в стек в качестве переменных параметром приводятся к long int, а все плавающие
к double.
Здравствуйте, bugmonster, Вы писали:
Спасибо заработало
B>как правильно сказал Аноним, читать надо double, потому как все целые значения при
B>запихивании в стек в качестве переменных параметром приводятся к long int, а все плавающие
B>к double.