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
將我傳入()以及? –