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ä