【发布时间】:2014-12-01 05:51:48
【问题描述】:
将两个无符号整数变量的差值存储到一个有符号整数变量中是否有任何潜在问题?
考虑下面的例子:
#include <stdio.h>
int main()
{
unsigned int a, b, d1;
signed int d2;
a = 20;
b = 200;
d1 = a - b;
d2 = a - b; // Line 1
printf("d1 = %u\n", d1);
printf("d2 = %d\n", d2);
return 0;
}
如果后面程序中用到了带符号的变量,会不会有什么潜在的问题?
【问题讨论】:
-
仅当您在
a或b中存储大于INT_MAX的值时。