A constant expression is evaluated during
compilation (rather than at run time).
As a result, a constant expression may
be used any place that a constant is required.
Constant expressions must not contain
assignment, ++, --, function-call,
or comma operators, except when they appear within
the operand of a sizeof operator.