Das macht den Code portabler. Die Defines __unix__ und __MSDOS__ usw. sind globale Defines. Jenachdem was definiert ist werden verschiedene #includes genommen. Da bei Windows eben andere gebraucht werden. Ich programmier beim PC normalerweise unter Linux, und das am Anfang hab ich aus einem C Buch.
Gruß Muraad