-1
我有一个很难理解为什么我得到,而在Linux上使用GCC 4.8.4本汇编警告时:GCC警告“比较始终是真正的”比较ntohs和与一个整数返回
警告:比较是总是如此由于范围有限的数据类型的[-Wtype-限制]
比较值时,像这样的:
uint16_t port_number = 23620;
if (ntohs(port_number) >= 0 && ntohs(port_number) <= 1023) {
puts("The compiler warns that I will always end up here.");
} else {
puts("Not reached");
}
据我所知,PR这是由于该比较涉及的每个值所支持的最大尺寸。但是,我怎样才能更好地理解这一点并解决它?
这仅仅是'> = 0'触发警告,因为'uint16_t'是无符号的,所以总是负数。 – ecatmur
在提问之前阅读功能手册总是一个好主意。 – Olaf
@Olaf你能告诉我在哪里,在这个函数的手册页有一个信息,可以帮助我?因为我没有发现任何有用的东西,这与我的问题有关......除了uint16_t。 –