As far as I can see there are 3 ways to use booleans in c
#defin
With the stdbool.h defined bool type, problems arise when you need to move code from a newer compiler that supports the bool type to an older compiler. This could happen in an embedded programming environment when you move to a new architecture with a C compiler based on an older version of the spec.
In summation, I would stick with the macros when portability matters. Otherwise, do what others recommend and use the bulit in type.