Tenk på følgende kode:
STARTOvennevnte kode er ikke en gyldig C -kode.
Men følgende kode er gyldig:
// Eksempel1.cFør sammenstilling er makrostart, heltall, utskrift og slutt erstattet av verdien deres, og koden blir en gyldig C -kode. Vi kan sjekke ved hjelp av følgende kommando:
GCC -E EKSEMPEL1.cDenne kommandoen vil vises etter å ha utvidet alle makroene.
Nå vil vi se forskjellige typer makroer:
1. Objektlignende makroer:
Syntaks:
#Define Macro_Name Macro_ValueHvis makroen tar mer enn en linje, kan vi gjøre det som følger:
#defin makro_navn makro_value1 \Denne makroen ser ut som et dataobjekt som er grunnen til at denne typen makro kalles en objektlignende makro.
// Eksempel2.cI Exapmle2.C, maks er en makro. Fra utgangen observerer vi det Maks erstattes av verdien 200.
2. Funksjonslignende makroer:
Syntaks:
#Define Macro_name () Macro_Valuemakro_navn er et brukerdefinert navn på makroen. Par parentes må legge etter makro_navn. Ingen plass er tillatt mellom makro_navn og parentes. Vi kan også passere argumenter i denne typen makroer.
#Define Legg til (x, y) x+yDenne makroen ser ut som en funksjonsanrop, det er derfor denne typen makro kalt en funksjonslignende makro.
// Eksempel3.cI eksempel3.c, Vi har sett at i motsetning til Cs funksjon, erstatter makroen bare koden med argumenter uten å beregne den. Så vi kan bestå forskjellige datatype ved å bruke den samme makroen.
Hvis vi legger et mellomrom mellom makronavnet og parentesen, fungerer det det samme som en objektlignende makro. Under C -eksempel illustrerer dette.
// Eksempel4.cI eksempel4.C, vi har sett at makro -tillegget erstattes av (x, y) x+y . Samme som en objektlignende makro.
3. Makro for token liming:
På C -språk brukes ## operatør for token liming. Ved hjelp av denne operatøren kan vi kombinere to gyldige symboler til ett gyldig token.
Eksempel:
Hvis vi prøver å ta liming som ikke genererer et gyldig token, gir C -kompilatoren en feil eller advarsel.
// Eksempel6.cI Eksempel6.c, Vi har en feilmelding fordi vi, etter en kombinasjon av to symboler, får en ugyldig token '52+'.
4. Makro for strengisering:
På C -språk brukes # operatør til å konvertere en makroparameter til en strengkonstant. Når en # operatør går foran en makroparameter, konverterer parameteren til en streng bokstavelig. Stringisering kan brukes til objektlignende og funksjonslignende makroer.
Eksempel:
I Eksempel7.c Vi har en streng "Hello World" ved hjelp av Stringizing Macro.
Konklusjon:
Denne artikkelen har lært om alle typer makrolignende Objektlignende makroer, Funksjonslignende makroer, Makro for token liming, Makro for strengisering og makro for strengisering på C -språk. Nå kan vi bruke en makro i vårt C -program uten tvil.