我有一个 unsigned long long 用于跟踪音量。音量增加另一个 unsigned long long。每 5 秒我打印出这个值,当该值达到 32 位无符号最大值时, printf 给我一个负值。代码片段如下:
unsigned long long vol, vold;
char voltemp[10];
vold = 0;
之后...
while (TRUE) {
vol = atoi(voltemp);
vold += vol;
fprintf(fd2, "volume = %llu);
}
我究竟做错了什么?这在 RedHat 4 2.6.9-78.0.5.ELsmp gcc 版本 3.4.5 下运行