J'ai une question sur les macros en C++;Comportement étrange d'une macro qui utilise une autre macro
Mon code:
#define a [i]
#define b(i) t a
int main(){
int t[10];
int i=0;
b(i+1)=1;
}
résultat voulu après préprocesseur fait son travail:
int main(){
int t[10];
int i=0;
t[i+1]=1;
}
Résultat réel:
int main(){
int t[10];
int i=0;
t[i]=1;
}
Je comprends ce qui se passe, mais est-il possible Je peux forcer le préprocesseur à faire ce que je veux? (donc d'abord remplacer le code dans la macro b, que d'interpréter ce code dans le cadre de la macro?)
solution simple - ne pas utiliser préprocesseur – Slava
Puis-je demander pourquoi vous voulez faire cela? – Borgleader
Passe-je dans un() aussi? –