Int is not large enough for 64 bit system. ptrdiff Is always the correct size and is signed unlike size_t
EDIT: Answer from the developers here https://stackoverflow.com/a/45873222 it's about compatibility with other types used for related purposes.
In general, the C integer types cannot be relied upon; typedefs like uint32_t, size_t, ptrdiff_t should always be preferred.