在keil软件下编译如下简化的代码:
uint64_t result_num = 0;
uint64_t add_num = 0;
result_num = add_num /10000000;
sprintf("result_num is %d",result_num );
但是打印出来的数是-1315758078;
若把上面代码改为:
result_num = add_num /(uint64_t)10000000;
结果打印出来的是 28147497;
有没有能帮忙解答一下,为啥会这样了,麻烦给一下正确的书写代码
uint64_t在printf里,应该用%ld还是%lld吧。