这个代码是先测试的,没通过。所以想换个笨办法,还是过不去。
#include <stdio.h>
#define PartSize 100*1024*1024 // 分块的大小100MB
int main()
{
unsigned int dwFileSize = 418997932;
int i = 0;
while(1)
{
if ( dwFileSize < 0 )
goto line1;
else
{
i++;
dwFileSize -= PartSize;
printf("%d\n",dwFileSize);
}
line1:
break;
}
printf("%d\n",i);
printf("while test.\n");
}
改成这样,可以退出来,但是得到分块的数字不对。
break的时候,中间不能有别的语义,不然永远退不出来的。
gcc和vc都试过了。
【 在 wushunchao (fixer) 的大作中提到: 】
: 你的dwFileSize的类型是unsigned吧,"%d"是按signed输出的。
: 循环为啥不用 while((int)dwFileSize>=0){} ?
--
FROM 101.88.252.*