prints of longs

时间:2011-11-13 09:58:22

标签: c printf long-integer

我实现了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;
}

当我使用format =“%ld,%ld”运行该函数时 并且args表示为字符集78,97,188,0,0,0,0,0,120,10,227,5,0,0,0,0 打印到标准输出的输出为12345678,0。而不是12345678,98765432。 可能是什么问题?如何解决?

1 个答案:

答案 0 :(得分:2)

因为,就像在ideone上一样,你的long是32位 http://ideone.com/jjafU

如果您使用"%lld"表示64位值,它会按预期工作 http://ideone.com/BYTaa