logo

# ja ## Operaattorit C:ssä

Merkkioperaattori (#)

The stringizing operaattori (#) on esikäsittelyoperaattori, joka saa vastaavan varsinaisen argumentin sisälle kaksinkertaiset lainausmerkit. #-operaattori, jota yleensä kutsutaan nimellä virittää operaattori, muuttaa sen edeltävän argumentin muotoon a lainattu merkkijono . Se tunnetaan myös stringification-operaattorina.

Sitä käytetään yleensä C:n makrojen kanssa.



taulukon c merkkijono

Esimerkki

Seuraava C-koodi havainnollistaa Stringizing-operaattorin (#) käyttöä.

C








>

rakenne tietorakenteessa

>

Lähtö

geeksforgeeks>

Selitys

Seuraava esiprosessori kääntää rivin printf(mkstr(geeksforgeeks)); osaksi printf(geeksforgeeks);

Token-pasting-operaattori (##)

The Token-pasting-operaattori (##) sallii varsinaisina argumentteina käytettyjen tokenien ketjuttamisen muiden merkkien muodostamiseksi. Usein on hyödyllistä yhdistää kaksi merkkiä yhdeksi makroja laajennettaessa. Tätä kutsutaan tokenin liittämiseksi tai merkkien yhdistämiseksi.

Esikäsittelyoperaattori '##' suorittaa tunnuksen liittämisen. Kun makroa laajennetaan, kunkin ##-operaattorin kummallakin puolella olevat kaksi merkkiä yhdistetään yhdeksi tunnukseksi, joka sitten korvaa ##-tunnuksen ja kaksi alkuperäistä merkkiä makrolaajennuksessa.

Esimerkkejä

Seuraava C-koodi osoittaa Token-pasting-operaattorin (##) käytön.

C




mylivecriclet

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

>

>

Lähtö

30>

Selitys

Esiprosessori muuntaa printf(%d, concat(x, y)); osaksi printf(%d, xy);

Token-pasting-operaattorin sovellus (##)

## tarjoaa tavan ketjuttaa todellisia argumentteja makrolaajennuksen aikana. Jos korvaavan tekstin parametri on ##:n vieressä, parametri korvataan varsinaisella argumentilla, ## ja sitä ympäröivä välilyönti poistetaan ja tulos tarkistetaan.

Valitse useista taulukoista SQL:ssä