Страница 1 из 1

Макросы[РЕШЕНО]

Добавлено: Чт дек 26, 2013 14:08:56
gruffi
Добрый день, форумчане! Есть вот такой макрос:

Код: Выделить всё

#define PIN_SOUND_PIN 0
#define PIN_ENABLE(GPIOx, PIN) GPIOx->BSRR |= GPIO_BSRR_BS##PIN
при вызове:

Код: Выделить всё

PIN_ENABLE(GPIOA, SOUND_PIN);
В Visual Studio работает, а в eclipse ругается, т.е. он склеивает строку как GPIO_BSRR_BSSOUND_PIN.
Как сделать, чтобы подставлялось числовое значение, а не строковое?

Re: Макросы

Добавлено: Чт дек 26, 2013 15:53:52
gruffi
Тему можно закрывать, уже подсказали. Если кому будет интересно:
To get the macro to expand, a second level of indirection is required, as shown by this compliant solution:
#define JOIN(x, y) JOIN_AGAIN(x, y)
#define JOIN_AGAIN(x, y) x ## y