我对sprintf很困惑,这是一个与不同平台有趣的问题.代码:
int main ()
{
char sql[1024];
uint32_t app_id = 32;
uint64_t task_id = 64;
sprintf(sql, "%u, %u", task_id, app_id);
printf ("%s\n", sql);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果在控制台(MSVC2010调试/释放):64,0
但是,同样的代码在控制台(CentOS64 gcc4.4.6):64,32
任何人都会帮助我,tks!
- - - - - - -更新 - - - - - - - - - - - - -
多谢你们.我读过这篇文章:sprintf for unsigned _int64
实际上,PRIu64在"inttypes.h"定义中:I64u在Windows上不支持.所以我可以这样写:
sprintf(sql, "%I64u, %I32u", task_id, app_id);
Run Code Online (Sandbox Code Playgroud)