Si compilas para Windows, pues tendrás que compilar para Windows. Si compilas para Unix, pues lo mismo. Los programas compilados rara vez podrán ser ejecutados en múltiples sistemas operativos (salvando alguna excepción, como Wine)
Por tanto, una aplicación ya compilada tiene commo destino 1 sistema operativo genralmente.
Si vas a compilar para varios, entonces puedes usar directivas del preprocesador tipo:
#ifdef _WIN32
const char* SO = "Windows";
#else
const char* SO = "Otro";
#endif
Aquí tienes una lista de macros definidos para cada sistema operativo:
https://sourceforge.net/p/predef/wiki/OperatingSystems/Si bien no es estándar, en la mayoría de compiladores
importantes los verás definidos.