Opérateur de stringisation (#)
Le opérateur de chaîne (#) est un opérateur de préprocesseur qui fait en sorte que l'argument réel correspondant soit entouré guillemets doubles. L'opérateur #, généralement appelé corder opérateur, transforme l’argument qu’il précède en un chaîne entre guillemets . Il est également connu sous le nom d’opérateur de stringification.
Il est généralement utilisé avec les macros en C.
dîner contre dîner
Exemple
Le code C suivant illustre l'utilisation de l'opérateur Stringizing (#).
C
>
>
10 ml en oncesSortir
geeksforgeeks>
Explication
Le préprocesseur suivant transforme la ligne printf(mkstr(geeksforgeeks)); dans printf(geeksforgeeks);
Opérateur de collage de jetons (##)
Le Opérateur de collage de jetons (##) permet aux jetons utilisés comme arguments réels d'être concaténés pour former d'autres jetons. Il est souvent utile de fusionner deux jetons en un seul lors du développement des macros. C'est ce qu'on appelle le collage de jetons ou la concaténation de jetons.
L'opérateur de prétraitement '##' effectue le collage du jeton. Lorsqu'une macro est développée, les deux jetons de chaque côté de chaque opérateur « ## » sont combinés en un seul jeton, qui remplace ensuite le « ## » et les deux jetons d'origine dans l'expansion de la macro.
Exemples
Le code C suivant illustre l’utilisation de l’opérateur de collage de jetons (##).
qu'est-ce qu'une interface
C
// C program to illustrate (##) operator> #include> > // Macro definition using the Token-pasting operator> #define concat(a, b) a##b> int> main(> void> )> {> > int> xy = 30;> > > // Printing the concatenated value of x and y> > printf> (> '%d'> , concat(x, y));> > return> 0;> }> |
>
>Sortir
30>
Explication
10 millions
Le préprocesseur transforme printf(%d, concat(x, y)); dans printf(%d, xy);
Application de l'opérateur de collage de jetons (##)
Le ## fournit un moyen de concaténer les arguments réels lors du développement d'une macro. Si un paramètre dans le texte de remplacement est adjacent à un ##, le paramètre est remplacé par l'argument réel, le ## et l'espace blanc environnant sont supprimés et le résultat est réanalysé.