печать длинных - PullRequest
       29

печать длинных

2 голосов
/ 13 ноября 2011

Я реализовал функцию myPrintf:

int myPrintf(const char* format,...)
{
    va_list args;
    va_start(args, format);
    int ret = vprintf (format, args);
    fflush(stdout);
    va_end (args);
    return ret;
}

Когда я запускаю функцию с форматом = "% ld,% ld" и args представление в виде набора символов: 78,97,188,0,0,0,0,0,120,10,227,5,0,0,0,0 вывод на стандартный вывод 12345678,0. Вместо 12345678,98765432. В чем может быть проблема? И как она может быть решена?

1 Ответ

2 голосов
/ 13 ноября 2011

Потому что, как и на ideone, ваши long 32-битные
http://ideone.com/jjafU

Если вы используете "%lld" для 64-битных значений, это работает так, как вы ожидаете
http://ideone.com/BYTaa

...