logo

# un ## operatori C

Stringing operators (#)

The virknes operators (#) ir priekšapstrādātāja operators, kas izraisa atbilstošā faktiskā argumenta iekļaušanu dubultpēdiņās. # operators, ko parasti sauc par stringizēt operators, pārvērš argumentu pirms tā par a citētā virkne . To sauc arī par stringifikācijas operatoru.

To parasti izmanto ar makro C.



tabula reaģē

Piemērs

Šis C kods parāda, kā tiek izmantots operators Stringizing (#).

C








>

>

Izvade

dhl nozīme
geeksforgeeks>

Paskaidrojums

Sekojošais priekšapstrādātājs pagriež rindu printf(mkstr(geeksforgeeks)); into printf(geeksforgeeks);

Žetonu ielīmēšanas operators (##)

The Žetonu ielīmēšanas operators (##) ļauj savienot marķierus, kas tiek izmantoti kā faktiskie argumenti, veidojot citus marķierus. Bieži vien ir lietderīgi apvienot divus marķierus vienā, vienlaikus paplašinot makro. To sauc par marķiera ielīmēšanu vai marķiera savienošanu.

Pirmsapstrādes operators ## veic marķiera ielīmēšanu. Kad makro tiek izvērsts, divi marķieri abās katra operatora “##” pusēs tiek apvienoti vienā marķierā, kas pēc tam aizstāj “##” un divus sākotnējos marķierus makro paplašinājumā.

Piemēri

Šis C kods parāda marķiera ielīmēšanas operatora (##) izmantošanu.

C


iekapsulēšana java



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

rr algoritms
>

>

Izvade

30>

Paskaidrojums

Priekšprocesors pārveido printf(%d, concat(x, y)); uz printf(%d, xy);

Token-ielīmēšanas operatora lietojumprogramma (##)

## nodrošina veidu, kā makro paplašināšanas laikā savienot faktiskos argumentus. Ja parametrs aizstāšanas tekstā atrodas blakus simbolam ##, parametrs tiek aizstāts ar faktisko argumentu, ## un apkārtējā atstarpe tiek noņemta, un rezultāts tiek atkārtoti skenēts.