我实现了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
。
可能是什么问题?如何解决?
答案 0 :(得分:2)
因为,就像在ideone上一样,你的long
是32位
http://ideone.com/jjafU
如果您使用"%lld"
表示64位值,它会按预期工作
http://ideone.com/BYTaa