Я пытаюсь написать некоторые функции как макросы, но я просто не могу понять, как это сделать.
#define PA0 (PORTA, PIN0_bm);
#define PA1 (PORTA, PIN1_bm);
...
#define PA7 (PORTA, PIN7_bm);
#define PD0 (PORTD, PIN0_bm);
#define PD1 (PORTD, PIN1_bm);
...
#define PD7 (PORTD, PIN7_bm);
затем макрос для функции
#define pinMode(x) (x[0].DIRSET = x[1])
как я хотел выглядеть после препроцессора
pinMode(PA0) -> (PORTA.DIRSET = PIN0_bm)
После компиляции (AVR-gcc) я получаю ошибку invalid types 'int[int]' for array subscript
.
Можно ли передать один аргумент макросу и получить два?