...
Code Block | ||
---|---|---|
| ||
/* // ... */ if (age >= 18) { /* Take action */ } else { /* Take a different action */ } /* // ... */ |
Compliant Solution
The compliant solution replaces 18 with the symbolic constant ADULT_AGE
to clarify the meaning of the code.
...
Code Block | ||
---|---|---|
| ||
enum { ADULT_AGE=18 }; /* // ... */ if (age >= ADULT_AGE) { /* Take action */ } else { /* Take a different action */ } /* // ... */ |
Exceptions
While replacing numeric constants with a symbolic constant is often a good practice, it can be taken too far. Exceptions can be made for constants that are themselves the abstraction you want to represent, as in this compliant solution.
...