#define creates a preprocessor macro, not a variable or constant. The preprocessor replaces MAX_NUM with 15 before compilation. It's not stored as a variable in memory - it's textual substitution. Preprocessor macros are different from const variables (which are actually stored) and linker constants.