[C++] dyrektywy preprocesora zależne od systemu

czy istnieje możliwość zapisania kodu przy pomocy dyrektyw preprocesora, który będzie się inaczej kompilował w zależności od tego pod jakim systemem jest kompilowany? Coś jak np.

#if Linux

           #define coś tam

#else

           #define coś innego

Można, zobacz np. tutaj:

http://predef.sourceforge.net/preos.html

Również wiele bibliotek ma makra określające system, np w Qt makra QT_OS.*, w GTK+ G_OS_* itp - oczywiście używanie tych bibliotek dla samych makr nie ma sensu, ale jeśli warto wiedzieć, czy biblioteka, której używasz, ma takie makra.