使用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]
如何避免此警告。
答案 0 :(得分:1)
unsigned char
的范围是[0 ... 255],值319被截断(环绕)到319 % 256 = 63
如何避免此警告。
即使您可以使用强制转换来避免此警告,该值仍会被截断:
Address_set(0,0,239,(unsigned char)319);
使用更长的类型,即:unsigned short