冒着大肆宣传愚蠢问题的风险:
说我有以下代码段:
unsigned int limit = 4294967296;
int math = 50000;
while(limit > 50000)
{
limit = limit - math;
printf("new limit is - \t%u\n", limit);
}
在unsigned int类型和int类型之间进行算术会对内存使用产生影响吗?
我知道unsigned int的内存大一个数量级(int为2 ^ 31,而unsigned int为2 ^ 32),但是,因为我使用unsigned int作为占位符,我想我我否定了溢出的危险。
我会自己运行,但我现在没有可访问的Linux机箱。
对此的任何意见都将不胜感激。
答案 0 :(得分:0)
这将永远循环,因为你最终会有环绕(即,limit
永远不会小于0)...这是你的问题吗?