В вашем вопросе у вас есть все заголовочные файлы, когда вы говорите об общем заголовке между исходными файлами.
В любом случае вы просто предоставляете общий файл .h
и имеете 3 различных
video_windows.c
video_linux.c
video_osx.c
Затем вы включаете в свой make-файл (или любой другой используемый вами) правильный файл в соответствии с платформой.
Если вы хотите разделить код в заголовочных файлах или напрямую в исходных файлах, вы можете легко использовать некоторые предопределенные макросы, см. здесь .