In some tutorials, books, or videos, you might have seen the term magic number.

What is that?

When is a number magic?

Unfortunately magicians have nothing to do with magic numbers.

Simply put, we say that a number is magic when it has no meaning associated.

It might be an undocumented number passed to function. Or a number being declared in your code, maybe added by a team member, that you don’t really know what it means.

What happens if you change it? No one knows.

It’s up to experimentation to find out.

Those numbers are really annoying. You should avoid creating magic numbers in your code.

Declare a constant, with a meaningful name, and use that instead of a magic number.

For example:

const int PIN_ID = 1;


is much better, and self-documenting, compared to: