Доброго.
Есть кусок (подсмотрел оператор ## в коде у народа) кода
Код
#define STX_PORT_NAME B
#define STX_PIN 3
#define STX_CONCAT(a,b) a ## b
#define STX_GEN_PORT(name) STX_CONCAT(PORT,name)
#define STX_GEN_DDR(name) STX_CONCAT(DDR ,name)
#define STX_PORT STX_GEN_PORT(STX_PORT_NAME)
#define STX_DDR STX_GEN_DDR (STX_PORT_NAME)
#define stx_init() {STX_PORT |= (1<<STX_PIN);\
STX_DDR |= (1<<STX_PIN);}
Всё компилится.
Но хочется избавится от макросов STX_GEN_x и STX_CONCATE
Код
#define STX_PORT PORT ## STX_PORT_NAME
превращается
Error[Pe020]: identifier "PORTSTX_PORT_NAME" is undefined D:\step_f\step_f.c 58
Откройте секрет, пжлст, как оператору ## толком указать, где "значение", а где "переменная", значение которой надо вставить.