To get a complete list of system-specific predefined macros, simplily use the following command(assuming you do not have foo.h):

$ touch foo.h; cpp -dM foo.h

Note that there are other three types predefined macros, including standard predefined macros, common predefined macros and C++ named operators. Check the C Preprocessor's online document yourself for details.