Stringoperator (#)
De strengoperator (#) er en forprosessoroperatør som gjør at det tilsvarende faktiske argumentet blir innelukket i doble anførselstegn. Operatoren #, som vanligvis kalles strenge operatør, gjør argumentet det går foran til en sitert streng . Det er også kjent som stringification-operatoren.
Det brukes vanligvis med makroer i C.
java streng klasse
Eksempel
Følgende C-kode demonstrerer bruken av Stringizing-operatoren (#).
C
>
>Produksjon
geeksforgeeks>
Forklaring
Følgende forprosessor snur linjen printf(mkstr(geeksforgeeks)); into printf(geeksforgeeks);
Token-lime-operator (##)
De Token-lime-operator (##) lar tokens brukt som faktiske argumenter bli sammenkoblet for å danne andre tokens. Det er ofte nyttig å slå sammen to tokens til ett mens du utvider makroer. Dette kalles token pasting eller token concatenation.
javascript nærmest
«##»-forbehandlingsoperatøren utfører token-liming. Når en makro utvides, kombineres de to tokenene på hver side av hver '##'-operator til et enkelt token, som deretter erstatter '##' og de to originale tokenene i makroutvidelsen.
Eksempler
Følgende C-kode demonstrerer bruken av token-lime-operatoren (##).
verdien av strengen
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;> }> |
>
>Produksjon
30>
Forklaring
eksempler på java-kode
Forprosessoren transformerer printf(%d, concat(x, y)); til printf(%d, xy);
Bruk av token-lime-operator (##)
## gir en måte å sette sammen faktiske argumenter under makroutvidelse. Hvis en parameter i erstatningsteksten er ved siden av en ##, erstattes parameteren av det faktiske argumentet, ## og det omkringliggende mellomrommet fjernes, og resultatet skannes på nytt.