Ваш компилятор будет включать несколько предопределенных переменных. Обратитесь к документации вашего компилятора, чтобы узнать, что это за список.
Если вы пытаетесь сделать часть программного обеспечения доступной для нескольких (unixlike) платформ, взгляните на autoconf . У него немного кривая обучения, но в долгосрочной перспективе он очень хорошо окупается.
Дополнительно:
Кроме того, ваш компилятор может иметь способ перечисления предопределенных макросов. Например, при использовании gcc, touch foo.h; cpp -dM foo.h
создает список всего того, что доходит до 119 с gcc на OS X. Но документация, вероятно, даст некоторое представление о рекомендуемых макросах этого компилятора для этого (но autoconf остается лучшим методом для этого в общем).