Maison >développement back-end >C++ >Les macros C/C peuvent-elles concaténer directement des chaînes sans fonctions d'assistance ?

Les macros C/C peuvent-elles concaténer directement des chaînes sans fonctions d'assistance ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 13:06:20208parcourir

Can C/C   Macros Directly Concatenate Strings Without Helper Functions?

Concaténation de chaînes à l'aide de macros en C/C

En C/C, des macros peuvent être utilisées pour concaténer des chaînes. Une question courante se pose : est-il possible de concaténer directement des chaînes définies comme des macros, sans recourir à des fonctions macro intermédiaires ?

Considérons l'exemple suivant :

#define STR1 "s"
#define STR2 "1"
#define STR3 STR1 ## STR2

Le but est de concaténer STR1 et STR2 pour obtenir "s1" comme valeur de STR3. Utiliser une autre fonction macro pour transmettre des arguments est une option, mais existe-t-il une méthode plus simple ?

Concaténation directe

En effet, il existe un moyen simple de concaténer des chaînes directement en utilisant macros :

#define STR3 STR1 STR2

Cette définition se traduit par l'expansion suivante :

#define STR3 "s" "1"

Dans C, concaténer des chaînes en les séparant par un espace ("s" "1") équivaut à avoir une seule chaîne ("s1"). Par conséquent, cette approche permet d'obtenir efficacement la concaténation de chaînes souhaitée.

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!

Déclaration:
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