A manifest constant (a macro) exists in C99 and it is called SIZE_MAX
. There's no such constant in C89/90 though.
However, what you have in your original post is a perfectly portable method of finding the maximum value of size_t
. It is guaranteed to work with any unsigned type.