Исходя из ваших комментариев, вы хотите unsigned int
(хотя вы говорите «целое число без знака», поэтому, возможно, вам нужно целое значение, а не обязательно unsigned int
).
В C для целого типа без знака значение -1
при преобразовании в этот тип гарантированно будет наибольшим значением этого типа:
size_t size_max = -1;
unsigned int uint_max = -1;
unsigned long ulong_max = -1;
присваивают переменным значения SIZE_MAX
, UINT_MAX
и ULONG_MAX
соответственно. В общем, вы должны включить limits.h
и использовать соответствующий макрос, но приятно знать правило выше. Кроме того, SIZE_MAX
отсутствует в C89, поэтому size_t size_max = -1;
будет работать как в C89, так и в C99.
Обратите внимание, что поведение переполнения гарантируется только для целых типов без знака.