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
which is a syntax error. The remedy is to remove the semicolon from the
#define line. It is almost invariably a mistake to end a
#define with a semicolon.