Maison > développement back-end > C++ > Comment puis-je concaténer des chaînes à l'aide de macros C/C ?

Comment puis-je concaténer des chaînes à l'aide de macros C/C ?

Linda Hamilton
Libérer: 2024-12-18 04:13:09
original
835 Les gens l'ont consulté

How Can I Concatenate Strings Using C/C   Macros?

Concaténation de chaînes avec des macros C/C

En C et C, les macros constituent un moyen pratique de définir des constantes et d'effectuer des substitutions de texte pendant la pré-production. -traitement. Supposons que vous ayez deux macros, STR1 et STR2, définies comme suit :

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

Vous souhaitez concaténer STR1 et STR2 pour obtenir "s1". Existe-t-il un moyen simple de le faire avec une seule macro qui produit la chaîne souhaitée ?

Une approche directe

Contrairement aux jetons dans le code, les macros sont traitées par le préprocesseur avant la compilation. Par conséquent, vous ne pouvez pas utiliser des opérateurs comme « » pour concaténer des chaînes directement avec des macros. Cependant, en fonction de la syntaxe spécifique, il peut être possible d'y parvenir.

Dans ce cas, C vous permet de concaténer des littéraux de chaîne séparés par des espaces lors du développement de la macro. En modifiant la définition STR3 comme suit, vous pouvez obtenir le résultat souhaité :

#define STR3 STR1 STR2
Copier après la connexion

Cela s'étend à :

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

En C, séparer deux chaînes par des espaces équivaut à créer un une seule chaîne. Par conséquent, STR3 se développe jusqu'à la chaîne "s1".

Approches alternatives

Si l'approche directe ne fonctionne pas dans votre scénario, des méthodes alternatives incluent l'utilisation de conditions de préprocesseur ou la transmission arguments à une macro parent qui effectue la concaténation. Ces approches peuvent être plus complexes mais offrent plus de flexibilité dans différentes situations.

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