Maison > développement back-end > C++ > Comment puis-je concaténer des chaînes définies par macro en C/C sans l'opérateur ?

Comment puis-je concaténer des chaînes définies par macro en C/C sans l'opérateur ?

Mary-Kate Olsen
Libérer: 2024-12-07 06:32:18
original
638 Les gens l'ont consulté

How Can I Concatenate Macro-Defined Strings in C/C   Without the  Operator?

Concaténation de chaînes basée sur des macros en C/C

La concaténation directe de chaînes définies par macro en C/C n'est pas possible en utilisant le ## opérateur de préprocesseur, principalement destiné à la concaténation de jetons. Cependant, une solution de contournement existe pour y parvenir.

Considérons l'exemple suivant :

#define STR1      "s"
#define STR2      "1"
#define STR3      STR1 STR2
Copier après la connexion

Ce code définit trois macros : STR1 avec la chaîne littérale "s", STR2 avec "1", et STR3 comme concaténation de STR1 et STR2. L'expansion de STR3 aboutit à :

#define STR3 "s" "1"
Copier après la connexion

Cependant, en langage C, la juxtaposition de deux chaînes séparées par des espaces (comme dans "s" "1") équivaut à une seule chaîne "s1" .

Par conséquent, le code suivant concatène directement STR1 et STR2 sans avoir besoin de l'opérateur ## :

#define STR3 STR1 STR2
Copier après la connexion

Ceci s'étend à :

#define STR3 "s1"
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal