-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。 –