3
C++의 매크로에 대한 질문이 있습니다.다른 매크로를 사용하는 매크로의 이상한 동작
내 코드 :
#define a [i]
#define b(i) t a
int main(){
int t[10];
int i=0;
b(i+1)=1;
}
전처리 후
구인 결과는 않습니다 그것의 일 :
int main(){
int t[10];
int i=0;
t[i+1]=1;
}
실제 결과 :
int main(){
int t[10];
int i=0;
t[i]=1;
}
내가 무슨 일이 일어나고 있는지 이해하지만, 어떤 방법이 내가 원하는대로 할 전 처리기를 강제 할 수 있습니까? (매크로 b의 코드를 매크로의 일부로 해석하는 것보다 먼저 코드를 대체 하시겠습니까?)
간단한 솔루션 - 당신이이 일을하려는 이유 – Slava
내가 물어 봐도 처리기를 사용하지 않는? – Borgleader
I를()로도 전달 하시겠습니까? –