Как уже отмечали другие, приложения Microsoft были перенесены на Mac, и они, вероятно, обнаружили, что проще превратить базовые API / каркасы в переносимый уровень абстракции, чем переписывать сами приложения ... так, как сообщается в команде QuickTime сделал при портировании в противоположном направлении (с Mac на Windows - в заголовках Carbon Mac есть аналогичные условные обозначения #if WIN32). Например, вместо того, чтобы искажать кодовую базу всего приложения Win32, которая ищет CreateFile () и заменяет или обусловливает каждую ссылку с помощью #ifdefs, просто создайте версию CreateFile () для Mac и покончите с этим. Повторите эти действия для каждого вызова Win32 API.
Удивительным моментом исторической мелочи является то, что конечный результат усилий Microsoft по переносу был доступен третьим сторонам в виде «Microsoft Visual C ++ Cross-Development Edition для Macintosh». Так что любой может взять свое приложение Win32 и перенести его на Mac, используя этот уровень абстракции.
Цитата из моего верного диска MSDN, октябрь 1996, CD:
"Microsoft Visual C ++ версии 4.0 Cross-Development Edition для Macintosh облегчает перенос программ для операционной среды Microsoft Windows в среду Apple 680x0 Macintosh или Power Macintosh. Предназначенная для предоставления полной среды разработки программ, Visual C ++ для Macintosh поддерживает C, стандартная библиотека времени выполнения C, C ++, большая часть Microsoft Win32 API, включая OLE и ODBC, и библиотека классов Microsoft Foundation. "
Так что он даже включал MFC. Я предполагаю, что любой "#ifdef _MAC" является артефактом MSVC ++ Cross-Development Edition для Macintosh (R.I.P.).