c - 警告消息 : large integer implicitly truncated to unsigned type [-Woverflow]

标签 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);

我收到了警告

大整数隐式截断为无符号类型 [-Woverflow]

如何避免此警告。

最佳答案

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

How to avoid this warning.

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

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

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

关于c - 警告消息 : large integer implicitly truncated to unsigned type [-Woverflow],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39738497/

相关文章:

c - 100.如何合法?

c - 在 C 中解析命令行参数

c - zmq_socket() 给出段错误

c - C语言中的积分提升和平衡有什么区别?

c - scanf 之后 fgets 不起作用

c - qsort()无法理解C中的细节

无法增加共享内存的大小

c++ - 为什么 c/c++ 浮点类型的命名如此奇怪?

c - 在 switch 语句中初始化变量

c - strncmp 正确使用