To generate a list of all predefined macros that the compiler knows about, this command is useful:
cc -dM -E -x c /dev/null
(Replace “cc” with clang, gcc, icc, xlc, or whatever your favorite C/C++ is named on the command line.)