Хотя мой ответ не совсем то, что вы ищете, это лучшее, что я знаю.
В Visual Studio 2005 может быть возможно использовать инструмент выделения, чтобы свернуть неиспользуемую часть блока #ifdef.
Еще одна идея, которая приходит на ум, - это разбить специфичный для ОС код на их собственные файлы и использовать мастер-файл, содержащий блоки #ifdef и важные части (т. Е. Полные объявления) кода, которые не меняются на разных платформах. *
Еще одна вещь, которая приходит на ум, - это просто группировать код для условных блоков там, где это возможно. Во многих ситуациях порядок кода может не иметь большого значения, и вы можете сгруппировать этот код вместе.
Другая вещь, которую можно сделать, если вы хотите использовать файл только в качестве справочного материала, - это запустить файл через препроцессор, который обрабатывает только условные блоки и игнорирует все, что не требуется для обработки условных блоков.