인수를 사용하지 않지만 미리 정의 된 정수와 사용되는 문자열이있는 매크로를 만들고 싶습니다. 문자열 연결을 사용하는 매크로
나는 인수가 매크로와 비슷한에 대해 뭔가하기 전에 물어 보는 이는 그것이 얼마나입니다 :#define BUZZER_PIN 1
#define BUZZER_PORT B
#define BUZZER_ALT 1
#define INIT_BUZZER_(PORTX, PIN, ALT) \
do { \
PORT##PORTX##_PCR(PIN) = PORT_PCR_MUX(ALT) | PORT_PCR_DSE_MASK; \
GPIO##PORTX##_PDDR |= (PIN)<<1; \
} while (0)
#define INIT_BUZZER(PORTX, PIN, ALT) \
INIT_BUZZER_(PORTX, PIN, ALT)
하지만 난 그냥 INIT_BUZZER_
참조 될 INIT_BUZZER
을 갖고 싶어하고 무엇보다도 않으면? 난 항상에만 문자열로 문제가 있습니다 내가 아니라 그 부분을 이해하지 못하는
#define INIT_BUZZER INIT_BUZZER_(BUZZER_PORT, BUZZER_PIN, BUZZER_ALT)
:
나는에 노력했다. 내가하지 그것의 값이B
stringify 지시어는 어떻습니까? '# BUZZER'는 큰 따옴표로 묶인 BUZZER 매크로의 값을 대체합니다. –
동일한 이름을 가진 두 개의 매크로를 사용할 수 없습니다. – jxh
'INIT_BUZZER' 두 버전을 동시에 정의하려고하지 않습니다. 그렇습니까? – user2357112