J'ai la structure suivante (simplifiée): J'ai écrit une macro pour créer la structure p> Le problème est que Sur la ligne p> error_desc code> s
.error_desc = error_desc code> est remplacé qui n'est pas ce que je voulais. La seule solution que je peux voir est de renommer le paramètre de fonction macro de
error_desc code> à
_error_desc code>, mais peut-être qu'il y a une meilleure façon. Peut-être que nous pouvons en quelque sorte "Escape" le
error_desc code> pour être substitué dans le
.error_desc code>? P> p> p>
3 Réponses :
Vous pouvez "tromper" le préprocesseur avec quelque chose comme mais ce n'est tout simplement pas la peine. Je viens de renommer le paramètre. Et développer une convention pour la nommage des paramètres qui vous aiderait à éviter de tels conflits de nommage à l'avenir. P> sur la deuxième pensée, le supplément
Concat code> n'est même pas nécessaire . Cela permettra d'atteindre le même objectif p>
Vous pouvez avoir une macro différente que le prétraiteur remplacerait comme alors vous pouvez définir Cela fonctionne car la substitution n'est effectuée qu'une seule fois. p> p> error_desc code>.
error_set code> comme ceci: p>
Il suffit d'utiliser le même nom pour le paramètre et l'élément de structure p>
Pourquoi ne pas aller à la route simple et simplement renommer l'argument?
@SomeProGrammerDude d'accord, mais je suis curieux si quelque chose comme ça est même possible avec
C code> pré-processeur?