Если вы действительно хотите это сделать, вам нужно поместить специфичный для платформы код внутри #ifdef, чтобы разрешить компиляцию только определенного кода на разных платформах. Возможно, будет проще создать одну общую библиотеку C, которая будет одинаковой для разных платформ, а затем три отдельные библиотеки C, которые будут обрабатывать специфичный для платформы код.
Я думаю, что код будет легче читать и управлять этим способом.