Not a necessity- in fact usually will not be. Because auto variables are in stack and there is no RO section inside stack, But compiler can do constant propagation and a constant variable might not have a memory. This can throw a compile error or unexpected result.