Я пишу код C, который требует от меня использования нескольких вызовов функций одного и того же определения, которые отличаются только одним символом. Есть ли способ, которым я могу создать функцию макроса, которая принимает, скажем, число и может вставлять эти вызовы в мой код для меня, где я вызываю макрос, учитывая, что я знаю числа во время компиляции:
i.e.
#define call_pin_macro(X)
enable_pin#X();
do_thing_pin#X();
do_other_thing_pin#X();
.
.
void pin_function(void){
call_pin_macro(1);
call_pin_macro(2);
call_pin_macro(3);
}
Вместо:
void pin_function(void){
enable_pin1();
do_thing_pin1();
do_other_thing_pin1();
enable_pin2();
do_thing_pin2();
do_other_thing_pin2();
enable_pin3();
do_thing_pin3();
do_other_thing_pin3();
}
В качестве примечания я просмотрел строку (отсюда включенные # X) в gcc, однако я не могу получить приведенный выше код для компиляции, из-за чего получаю сообщение об ошибке «ошибка: за '#' не следует параметр макроса». И поэтому кажется, что это не совсем та функциональность, которая мне нужна. Заранее спасибо.