Sujungimo operatorius (#)
The sujungimo operatorius (#) yra išankstinio procesoriaus operatorius, dėl kurio įterpiamas atitinkamas faktinis argumentas dvigubos kabutės. # operatorius, kuris paprastai vadinamas sustyguoti operatorius, prieš jį esantį argumentą paverčia a citata eilutė . Jis taip pat žinomas kaip sutrumpinimo operatorius.
Paprastai jis naudojamas su makrokomandomis C.
javascript pamoka
Pavyzdys
Šis C kodas parodo operatoriaus Stringizing (#) naudojimą.
C
>
string.formatas java
>Išvestis
geeksforgeeks>
Paaiškinimas
Šis išankstinis procesorius paverčia eilutę printf(mkstr(geeksforgeeks)); į printf(geeksforgeeks);
Žetonų įklijavimo operatorius (##)
The Žetonų įklijavimo operatorius (##) leidžia žetonus, naudojamus kaip faktinius argumentus, sujungti, kad susidarytų kiti žetonai. Išplečiant makrokomandas dažnai naudinga sujungti du žetonus į vieną. Tai vadinama žetonų įklijavimu arba žetonų sujungimu.
Išankstinio apdorojimo operatorius „##“ atlieka prieigos rakto įklijavimą. Kai makrokomanda išplečiama, du žetonai, esantys abiejose kiekvienos operatoriaus „##“ pusėse, sujungiami į vieną atpažinimo raktą, kuris pakeičia „##“ ir du pradinius žetonus makrokomandos plėtinyje.
Pavyzdžiai
Šis C kodas parodo, kaip naudojamas Žetonų įklijavimas (##).
C
Bourne-gain apvalkalas
// 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;> }> |
>
>Išvestis
30>
Paaiškinimas
Pirminis procesorius transformuoja printf(%d, concat(x, y)); į printf(%d, xy);
Žetonų įklijavimo operatoriaus taikymas (##)
## suteikia galimybę sujungti tikrus argumentus makrokomandos išplėtimo metu. Jei pakeitimo tekste esantis parametras yra šalia ##, parametras pakeičiamas tikruoju argumentu, ## ir aplinkiniai tarpai pašalinami, o rezultatas nuskaitomas iš naujo.
linkedlist java