logo

# och ## Operatörer i C

Strängningsoperator (#)

De strängningsoperator (#) är en förprocessoroperatör som gör att motsvarande faktiska argument innesluts i dubbla citattecken. Operatorn #, som vanligtvis kallas för stränga operatör, förvandlar argumentet det föregår till en citerad sträng . Det är också känt som strängningsoperatorn.

Det används vanligtvis med makron i C.

java innehåller delsträng

Exempel

Följande C-kod visar hur operatorn Stringizing (#) används.



C




>

>

Produktion

geeksforgeeks>

Förklaring

Följande förprocessor vänder raden printf(mkstr(geeksforgeeks)); into printf(geeksforgeeks);

Token-klistrad operator (##)

De Token-klistrad operator (##) tillåter att tokens som används som faktiska argument sammanfogas för att bilda andra tokens. Det är ofta användbart att slå samman två tokens till en medan du expanderar makron. Detta kallas token-klistring eller token-sammansättning.

skapa tabeller i latex

'##'-förbehandlingsoperatorn utför token-klistring. När ett makro expanderas, kombineras de två tokens på vardera sidan av varje '##'-operator till en enda token, som sedan ersätter '##' och de två ursprungliga tokens i makroexpansionen.

Exempel

Följande C-kod visar användningen av token-klistra-operatorn (##).

nackdelar med internet

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;> }>

>

formatera java-sträng

>

Produktion

30>

Förklaring

Förprocessorn transformerar printf(%d, concat(x, y)); in printf(%d, xy);

Tillämpning av token-klistra-operator (##)

## tillhandahåller ett sätt att sammanfoga faktiska argument under makroexpansion. Om en parameter i ersättningstexten ligger intill en ##, ersätts parametern av det faktiska argumentet, ## och det omgivande vita utrymmet tas bort och resultatet skannas på nytt.