Если бы я мог найти способ сделать что-то похожее на это, я мог бы вырезать сотни строк кода в своем приложении и значительно увеличить ремонтопригодность. У кого-нибудь есть идеи?C Программирование: Препроцессор, включить файлы из макроса
#include <stdio.h>
int main()
{
#define include_all_files(root) \
#include #root "1.h" \
#include #root "2.h" \
#include #root "3.h" \
#include #root "4.h"
include_all_files(first_library)
include_all_files(second_library)
include_all_files(third_library)
return 0;
}
EDIT:
Я ценю ответы, мой пример, кажется, вызывает Misdirection в усилии, так вот проблема я на самом деле пытается решить:
Я реализующий конечный автомат. Через именовании, я получил его, чтобы быть столь же просто, чтобы добавить состояние как:
STATE(initial_screen)
#include "initial_screen.state"
END_STATE
STATE(login)
#include "login.state"
END_STATE
Однако, если бы я мог ответить на первоначальный вопрос, я мог бы реорганизовать это вниз к чему-то же просто, как:
ADD_STATE(initial_screen)
ADD_STATE(login)
Это связано с тем, что имя файла и имя состояния, а также все основные проводки и все остальное все соответствуют аналогичным соглашениям. Однако я не могу понять, как реализовать файл include на основе маркера, полученного в макросе.
, вероятно, лучше отредактировать свой первый пост, а не добавлять к нему комментарии. –
Спасибо, Андерс, я не понимал, что могу это сделать, я добавил редактирование. –