1
다음 코드 고려 : 나는 val0xAA
에 확장 매크로 VAL(TOTO)
싶습니다토큰을 붙여 넣기 전에 매크로를 확장 할 수 있습니까?
#define TOTO 0xAA
#define TITI 0xBB
unsigned char val0xAA[] = {1, 2, 3};
unsigned char val0xBB[] = {4, 5, 6};
// Macro using Token pasting
#define VAL(_x_) val##_x_
void foo(void)
{
// Silly attempt to abuse preprocessor
unsigned char *tab1 = VAL(TOTO);
unsigned char *tab2 = VAL(TITI);
}
을하지만 실제로 valTOTO
로 확장하고 컴파일이 실패합니다.
질문 : 토큰 붙여 넣기 평가 전에 TOTO
의 평가를 "강제/우선 순위 지정"할 수 있습니까?
오, 멋지다. 나는 그것에 대해 생각하지 않았다. :) – Coconop