十六进制的0x7fffffff,对应的是32位中的int的max,把它作为INF在不做运算的时候是可行的,但是如果在使用前进行了加减之类的运算,很可能溢出为负值导致错误。
常用的数字时0x3f3f3f3f,看了别的博文,这个数字确实巧妙哇!
既满足无穷大加有限为无穷大,又满足无穷大加无穷大为无穷大!
普遍的用法有:
1.
#define INF 0x3f3f3f3f
直接做INF用。
2.
memset(a,0x3f,sizeof(a));
注意memset是按位初始化,如果要把一项(如一个int)设置成max,采用上面的代码即可,不用手写for循环了。