I'm working through a book called [C Programming: A Modern Approach](https://rads.stackoverflow.com/amzn/click/com/0393979504 "Author: K. N. King") and in the first section discussing arrays, the author states:

> 
> using a macro to define the length of an array is excellent practice
> 
> 
> 

Then uses the brief example:

```
#define N 10
...
int a[N];

```

I understand that it has something to do with being able to go back into the source code of the program and change the value, and making it a macro maybe makes it easier for the programmer, but I'm not certain. **Why** is this an excellent practice, or is it objective?