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!