Also, 'false' is a C++ keyword (a bool), not 'FALSE'. 'FALSE' and 'TRUE' probably have one of the following definitions somewhere:

#define FALSE 0
#define TRUE 1

or

const int FALSE = 0;
const int TRUE = 1;

or

enum BOOL = { FALSE = 0, TRUE };

1 and 0 will always evaluate to the boolean true or false, resplectively, but the all caps versions are not actually keywords.