"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je créer des macros multi-lignes en C / C ++?

Comment puis-je créer des macros multi-lignes en C / C ++?

Publié le 2025-03-23
Parcourir:814

How Can I Create Multi-Line Macros in C/C  ?

Macros multi-lignes en préprocement

La création de macros de préprocesseur unique est simple, mais lorsqu'il s'agit de définir des macros qui s'étendent sur plusieurs lignes, la tâche peut sembler incontestable. Cet article fournit une solution complète pour créer des macros multi-lignes en C / C De plus, chaque ligne de la macro, à l'exception de la dernière ligne, doit se terminer avec un caractère d'échappement de continuation de ligne. Ce personnage signifie que la définition de macro se poursuit sur la ligne suivante.

Par exemple, pour définir une macro qui crée une nouvelle classe, comme spécifié dans la question, la syntaxe suivante peut être utilisée:

# Définir Somemacro (x) \ {\ Classe X: Autre autre public \ {\ int foo; \ void dofoo (); \ }; \ }

нюансы

#define someMacro(X) \
{                      \
    class X : public otherClass \
    {                    \
        int foo;          \
        void doFoo();     \
    };                  \
}                      

Les applications

Les macros multi-lignes sont utiles dans les scénarios où les déclarations complexes doivent être étendues à plusieurs reprises. Ils améliorent la lisibilité du code en encapsulant les blocs de code couramment utilisés en unités réutilisables.

Exemple

Considérez l'exemple suivant:

# Définir Swap (a, b) \ \ \ \ \ \ {\ int temp = (a); \ (a) = (b); \ (b) = temp; \ }

Cette macro peut être utilisée pour échanger facilement les valeurs de deux variables.

#define SWAP(a, b) \
{                   \
    int temp = (a); \
    (a) = (b);      \
    (b) = temp;      \
}                   

Conclusion

int main() {
    int a = 10, b = 20;
    
    // Invoke the SWAP macro to swap the values
    SWAP(a, b);
    
    cout 
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3