Не всё делается одинаково во всех компиляторах, не на всех платформах, приходится временами городить хитрые конструкции из #if/#elif/#endif. Случайно наткнулся на шпаргалку, в которой описано, какие директивы препроцессора предопределяют конкретные компиляторы: http://sourceforge.net/p/predef/wiki/Compilers/
С того же ресурса:
- для операционных систем: http://sourceforge.net/p/predef/wiki/OperatingSystems/
- для стандартов языка: http://sourceforge.net/p/predef/wiki/Standards/
- для стандартных библиотек (реализаций) C и C++: http://sourceforge.net/p/predef/wiki/Libraries/
- для архитектур: http://sourceforge.net/p/predef/wiki/Architectures/
А так же определение порядка байтов: http://sourceforge.net/p/predef/wiki/Endianness/
Другие ссылки на эту тематику: