Operator nizanja (#)
The operator nizanja (#) je predprocesorski operater, ki povzroči, da se vanj vključi ustrezni dejanski argument dvojni narekovaji. Operator #, ki se na splošno imenuje nanizati spremeni argument pred njim v a naveden niz . Znan je tudi kot operator stringifikacije.
Na splošno se uporablja z makri v C.
java delaj medtem
Primer
Naslednja koda C prikazuje uporabo operatorja nizanja (#).
C
>
>Izhod
geeksforgeeks>
Pojasnilo
Naslednji predprocesor obrne vrstico printf(mkstr(geeksforgeeks)); v printf(geeksforgeeks);
Operator lepljenja žetonov (##)
The Operator lepljenja žetonov (##) omogoča, da se žetoni, ki se uporabljajo kot dejanski argumenti, združijo v druge žetone. Med razširitvijo makrov je pogosto koristno združiti dva žetona v enega. To se imenuje lepljenje žetonov ali združevanje žetonov.
mysql seznam uporabnikov
Operator predprocesiranja '##' izvede lepljenje žetonov. Ko je makro razširjen, se dva žetona na obeh straneh vsakega operatorja »##« združita v en sam žeton, ki nato nadomesti »##« in dva prvotna žetona v razširitvi makra.
Primeri
Naslednja koda C prikazuje uporabo operatorja lepljenja žetonov (##).
c++ par
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;> }> |
>
Rajinikanth
>Izhod
30>
Pojasnilo
Predprocesor pretvori printf(%d, concat(x, y)); v printf(%d, xy);
Uporaba operaterja lepljenja žetonov (##)
## ponuja način za združevanje dejanskih argumentov med razširitvijo makra. Če je parameter v nadomestnem besedilu poleg ##, se parameter nadomesti z dejanskim argumentom, ## in okoliški prazen prostor sta odstranjena, rezultat pa se ponovno pregleda.