C Programmēšana

Makro C valodā

Makro C valodā
Makro C valodā ir koda daļa, kurai piešķirts nosaukums. Ja nosaukums tiek lietots jebkurā programmas vietā, makro vērtība tiek aizstāta pirms programmas sastādīšanas. Šajā rakstā mēs detalizēti redzēsim, kā rakstīt makro C valodā.

Apsveriet šādu kodu:

SĀKT
INTEGER n = 5;
PRINT ("n vērtība ir% d", n);
BEIGT

Iepriekš minētais kods nav derīgs C kods.

Bet derīgs ir šāds kods:

// Piemērs1.c
#define START int main ()
#define END
#define INTEGER int
#define PRINT (A, B) printf (A, B)
SĀKT
INTEGER n = 5;
PRINT ("n vērtība ir% d", n);
BEIGT

Pirms kompilēšanas makro START, INTEGER, PRINT un END ir aizstāts ar to vērtību, un kods kļūst par derīgu C kodu. Mēs varam pārbaudīt, izmantojot šādu komandu:

gcc -E 1. piemērs.c

Šī komanda tiks parādīta pēc visu makro paplašināšanas.

Tagad mēs redzēsim dažāda veida makro:

1. Objektam līdzīgi makro:

Sintakse:

#define macro_name macro_value

Ja makro aizņem vairāk nekā vienu rindiņu, mēs to varam izdarīt šādi:

#define macro_name macro_value1 \
macro_value2 \
makro_vērtība3
#define MAX 200

Šis makro izskatās kā datu objekts, tāpēc šāda veida makro tiek saukts par objektam līdzīgu makro.

// Piemērs2.c
// # iekļaut
#define MAX 200
int main ()

printf ("MAX vērtība ir:% d", MAX);
atgriešanās 0;

In Exapmle2.c, MAX ir makro. Pēc iznākuma mēs to novērojam MAX tiek aizstāts ar tā vērtību 200.

2. Funkcijām līdzīgi makro:

Sintakse:

#define macro_name () makro_vērtība

makro_nosaukums ir lietotāja definēts makro nosaukums. Pārī iekavas ir jāliek aiz makro_nosaukums. Starp tām nav atļauta atstarpe makro_nosaukums un iekavas. Mēs arī varam nodot argumentus šāda veida makros.

#define add (x, y) x + y

Šis makro izskatās kā funkciju izsaukums, tāpēc šāda veida makro sauc par funkcijai līdzīgu makro.

// Piemērs3.c
#define add (x, y) x + y
int main ()

int a;
pludiņš b;
a = pievienot (4,5);
b = pievienot (2.5,3.6)
atgriešanās 0;

3. piemērā.c, mēs esam redzējuši, ka atšķirībā no C funkcijas makro aizstāj tikai kodu ar argumentiem, to neaprēķinot. Tātad, mēs varam nodot dažādu datu tipu, izmantojot to pašu makro.

Ja mēs ievietojam atstarpi starp makro nosaukumu un iekavām, tas darbojas tāpat kā objektam līdzīgs makro. Zemāk parādīts C piemērs.

// 4. piemērs.c
#define add (x, y) x + y
int main ()

int a;
pludiņš b;
a = pievienot (4,5);
b = pievienot (2.5,3.6)

4. piemērā.c, mēs redzējām, ka makro pievienošana tiek aizstāta ar (x, y) x + y . Tāds pats kā objektam līdzīgs makro.

3. Makro žetonu ielīmēšanai:
C valodā marķiera ielīmēšanai tiek izmantots operators ##. Izmantojot šo operatoru, mēs varam apvienot divus derīgus marķierus vienā derīgā marķierī.
Piemērs:

// Piemērs5.c
#define MARGE (x, y) x ## y
int main ()

int num = MARGE (52,34);
atgriešanās 0;

Ja mēģinām ielīmēt marķieri, kas nerada derīgu marķieri, C kompilators sniedz kļūdu vai brīdinājumu.

// Piemērs6.c
#define MARGE (x, y) x ## y
int main ()

int num = MARGE (52, +);
atgriešanās 0;

In 6. piemērs.c, mums ir kļūdas ziņojums, jo pēc divu marķieru kombinācijas mēs iegūstam nederīgu marķieri '52 + '.

4. Makro ievilkšanai:
C valodā # operators tiek izmantots, lai pārveidotu makro parametru virknes konstanti. Kad operatora # priekšā ir makro parametrs, parametrs tiek pārveidots par virknes literālu. Stringingu var izmantot objektu un funkciju līdzīgiem makro.
Piemērs:

// 7. piemērs.c
#define STRINGIZING (x) #x
int main ()

printf (STRINGIZING (Sveika pasaule));
atgriešanās 0;

In 7. piemērs.c izmantojot makro STRINGIZING, esam ieguvuši virkni “Hello World”.

Secinājums:

Šis raksts ir uzzinājis par visiem makro veida veidiem Objektiem līdzīgi makro, Funkcijām līdzīgi makro, Makro žetonu ielīmēšanai, Makro ievilkšanai un makro ievilkšanai C valodā. Tagad mēs bez šaubām varam izmantot makro savā C programmā.

HD Remastered spēles operētājsistēmai Linux, kurām nekad agrāk nebija Linux laidiena
Daudzi spēļu izstrādātāji un izdevēji nāk klajā ar veco spēļu HD remaster, lai pagarinātu franšīzes darbības laiku. Lūdzu, faniem, kas pieprasa saderī...
Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...