Нет!
Стандарт C99 гласит (раздел 6.10.2):
Директива предварительной обработки вида
# include pp-tokens new-line
(что не соответствует ни одной из двух предыдущих форм) разрешено. Предварительная обработка
токены после include в директиве обрабатываются так же, как и в обычном тексте. (Каждый
идентификатор, определенный в качестве имени макроса, заменяется его списком замен
токены предварительной обработки.) Директива, возникающая после всех замен, должна соответствовать одной из
две предыдущие формы.
Однако есть другое правило (раздел 10.6.3.2, «Оператор #»), которое гласит:
Каждый токен предварительной обработки # в списке замены для функционально-подобного макроса должен быть
с последующим параметром в качестве следующего токена предварительной обработки в списке замен.
«#include s» в раскрытии макроса не соответствует этому ограничению - слово «include» не является параметром для макросоподобной функции.
Это не позволяет вам генерировать (пригодную для использования) директиву #include. В любом случае, во время раскрытия макроса существует другое правило (раздел 10.6.3.4), которое гласит:
Получившаяся полностью замененная макросом последовательность токенов предварительной обработки не обрабатывается
в качестве директивы предварительной обработки, даже если она похожа на одну.
Это означает, что вы не можете сгенерировать никакую директиву препроцессора из результата расширения макроса.
К сожалению, ваши усилия обречены на провал.