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.)