Вы можете #include
любой файл в любой файл. Будет ли он действительным, зависит от содержимого файла; в частности, будет ли этот контент действительным, если он будет введен непосредственно в виде текста.
Заголовочные файлы, как правило, содержат объявления и конструкции, которые обычно допустимы только вне определения функции (или вне любого вида конструкции кодирования) - ключ находится в имени header file. В противном случае вы можете изменить область объявлений или еще больше сделать синтаксически недопустимым модуль компиляции.
Подходящий файл, написанный специально для этой цели, может подойти, но не любой произвольный заголовочный файл.
В заголовочных файлах общего назначения должны быть предусмотрены средства защиты для предотвращения многократного объявления, поэтому, если вы не определите макрос защиты, повторное включение файла заголовка ни в коем случае не повлияет.
Одним из возможных решений вашей проблемы является создание отдельно скомпилированных модулей (модулей компиляции), содержащих функции-оболочки для API, который вам нужно вызывать. Каждый модуль компиляции может затем включать файл заголовка API после определения соответствующих макросов конфигурации. После этого у вас будет два отдельных и независимых интерфейса, предоставляемых этими функциями оболочки.