Глупый вопрос про переменные параметры
От: merlinJap  
Дата: 30.06.04 10:50
Оценка:
Доброго времени суток...
Пишу функцию которая обрабатывает переменное чмсло параметров и один из них 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.
Re: Глупый вопрос про переменные параметры
От: Аноним  
Дата: 30.06.04 10:52
Оценка:
А если попробовать читать не float а double ?
Re: Глупый вопрос про переменные параметры
От: LaptevVV Россия  
Дата: 30.06.04 11:02
Оценка:
Здравствуйте, 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?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Глупый вопрос про переменные параметры
От: bugmonster Россия  
Дата: 30.06.04 11:15
Оценка:
Здравствуйте, 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.
Re[2]: Глупый вопрос про переменные параметры
От: merlinJap  
Дата: 30.06.04 14:19
Оценка:
Здравствуйте, bugmonster, Вы писали:

Спасибо заработало

B>как правильно сказал Аноним, читать надо double, потому как все целые значения при

B>запихивании в стек в качестве переменных параметром приводятся к long int, а все плавающие
B>к double.
С уважением merlinjap.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.