一个简单的C程序测试,在32位编译系统下和64位编译系统下得到的结果不一样。
代码如下:
#include <stdio.h>
#include <stdint.h>
int main()
{
double time = 0.019;
unsigned int rate = 48000;
int num = 8;
int32_t res = 0;
res = (int32_t)(rate * time / num);
printf("%d\n", res);
return 0;
}
正常输出应该为114,但是在32位系统编译下执行结果为113,在64位系统编译执行结果为114,大家可以试一试。
请问这是什么原因呢?求大佬告知。