It means that the value of the expression is constant, and thus the if
is pointless since it's known at compile-time whether or not it will be true or not.
You could of course make it more dynamic, or use the preprocessor instead:
#if (NUMBER_OF_ROOMS - 2) > 20
// do something here
#endif
I assumed the cast to (unsigned int)
was pointless, if these really were values close to the boundaries of the integer precision, then Jens Gustedt's comment applies.