„Strlen (s1) - strlen (s2)” nigdy nie jest mniejszy niż zero
Obecnie piszę program w C, który wymaga częstych porównań długości łańcuchów, więc napisałem następującą funkcję pomocniczą:
<code>int strlonger(char *s1, char *s2) { return strlen(s1) - strlen(s2) > 0; } </code>
Zauważyłem, że funkcja zwraca wartość true nawet wtedy, gdys1
ma krótszą długość niżs2
. Czy ktoś może wyjaśnić to dziwne zachowanie?