Вы можете переписать это как
#define NP_MAXREADY (((~0u)<<1)>>1)
, тогда вы заметите, что операция внутреннего сдвига совершенно бесполезна, поскольку ее единственный эффект - сдвинуть бит старшего разряда
#define NP_MAXREADY ((~0u)>>1)
, который, в свою очередь, является не чем иным, как
#define NP_MAXREADY (UINT_MAX/2)
Кроме того, что указано в другом ответе, это не INT_MAX
, поскольку в первую очередь это - unsigned
, поэтому тип отличается.Тогда представление signed
против unsigned
может иметь биты заполнения, поэтому вы никогда не можете быть уверены, что эти два значения имеют одинаковое значение.