It is easy to get confused in the C preprocessor, and treat it as part of C itself, but that is a mistake because the preprocessor is just a text substitution mechanism. For example, if you write
/* WRONG */
#define MAX 100;
int arr[MAX];
the code expands to
int arr[100;];
which is a synta...