„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?

questionAnswers(3)

yourAnswerToTheQuestion