#define bool char
#define false 0
#define true 1
#define null NULL
They're called macros. And yes, by convention they're ALL_UPPERCASE to avoid clashes with normal identifiers, because they're just text replacement and don't follow the normal scoping rules of the language.
Consider the following:
#define foo bar ... int foo, bar; // error: preprocessing turns this into int bar, bar;
To avoid surprises like this (code that isn't what it seems like), we try to keep macros distinct.