Снова поднимаю старую тему т.к. натолкнулся на трудность.
Необходимо в этой конструкции:
Код
#define ANALOG_PARAM(a, b, c) { (a), (b), (c) }
#define DEFAULT_ANALOG_PARAM ANALOG_PARAM(0,5,10)
сделать так чтобы а и b были массивами.
Первое что пришло в голову это:
Код
#define ANALOG_PARAM(a[21], b[21], c) { (a), (b), (c) }
#define DEFAULT_ANALOG_PARAM ANALOG_PARAM({0,0,0,0},{5,5,5,5}, 10)
IAR ругается - говорит что
Error[Pe018]: expected ")" после a перед [21]
Error[Pe055]: too many arguments in macro invocation
Объявлял отдельно строку с параметрами и пытался вставить в макорс:
Код
#define str_a {0,0,0,0,0}
#define ANALOG_PARAM(a, b, c) { (a), (b), (c) }
#define DEFAULT_ANALOG_PARAM ANALOG_PARAM(str_a,str_a, 10)
На макрос не ругается но когда вставляю это в структуру
Код
.....................
{
DEFAULT_ANALOG_PARAM,
DEFAULT_ANALOG_PARAM,
DEFAULT_ANALOG_PARAM,
},
......................
выскакивает ошибка:
Error[Pe029]: expected an expression
Буду благодарен всем кто подскажет как можно корректно определить такой макрос