#define MAX_PEOPLE (10)
...
int myInt = MAX_PEOPLE
will be replaced with
int myInt = (10)
This can be a problem with macro definitions.
A macro is simply a #define which replaces a statement with a piece of code
#define sqr(x) (x*x)
sqr(10) is replaced by (10*10)
This is used for inline code avoiding the overhead of calling a function and passing variables (a compartitvely large overhead for a small function)
The problem arises if you think that macros act the same as functions
sqr(5 + 10)
does not equal
sqr(15)
because it is precisely replaced with
(5 + 10 * 5 + 10)
As + has a higher order of precedence this amounts to
(5 + (10 * 5) + 10)
or
65
not the 15^2 or 225 you wanted
Another use for #defines is removing or altering code for compile.
Simply
#ifdef DEBUG
printf("Debug");
#else
printf("Not debug");
#endif
compiles the first case if the statement
#define DEBUG
is within scope or in your compiler settings
or the second case if it is not.
This allows you to make sure certain code is only compiled to help you debug and never slows down the final release version.
This is far more than you asked but I hope it helped (more than confused at least)