警告消息:隐式截断为无符号类型的大整数[-Woverflow]

时间:2016-09-28 05:08:56

标签: c

使用unsigned char参数编写一个函数,如下所示

void Address_set(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2)

上述函数在C代码的main()函数中调用为

Address_set(0,0,239,319);

我收到了警告

大整数隐式截断为unsigned type [-Woverflow]

如何避免此警告。

1 个答案:

答案 0 :(得分:1)

unsigned char的范围是[0 ... 255],值319被截断(环绕)到319 % 256 = 63

  

如何避免此警告。

即使您可以使用强制转换来避免此警告,该值仍会被截断:

Address_set(0,0,239,(unsigned char)319);

使用更长的类型,即:unsigned short