Introduktion till förprocessordirektiv i C

Oftast görs det som en missuppfattning att förprocessorer eller makron är en del av sammanställningen av programmet, men det är helt fel. Direktförberedande direktiv är typen av makron och en fas innan sammanställningen äger rum. Det kan sägas att detta är några uppsättningar instruktioner som ges till kompilatorn för att utföra faktisk sammanställning. De är också kända som längre konstruktionsförkortningar för makron vilket innebär att värdet i makron blir ersatt med segmentet av koder. Makro definieras av en speciell symbol och har en symbol som börjar med "#". Därför är dessa # definiera en typ av specialförberedare följt av den faktiska kompilatorn. I det här ämnet kommer vi att lära oss om förprocessordirektiv i C.

Förbehandlaren har en speciell typ av representation för sin identifiering som alla förbehandlardirektiv initierar sig själv med en speciell symbol för "#" följt av en identifierare och sedan direktivets namn. Whitespace är också tillåtet före och efter #. Till exempel # inkludera.

Det finns vissa passningar eller anläggningar som en C-förprocessor kan erbjuda:

  • Rubrikfiler: Inkludering av rubrikfiler är ett sätt på vilket deklarationer kan ersättas av programsyntax och programkropp.
  • Expandera makro: Att definiera makroer är som att förkorta ett kodstycke som en C-förbehandlare ersätter makroerna med deras respektive definition genomgående.
  • Sammanställning efter villkor: Enligt olika scenarier eller olika villkor är det möjligt att inkludera vissa delar av programmet genom villkorlig sammanställning.
  • Linjekontroll: Om du använder ett program för att kombinera eller ordna om någon eller flera källfiler till en mellanfil för sammanställning, kan du använda radkontroll för att informera kompilatorn om var varje källrad kommer från.

Typer av förprocessordirektiv

Alla typer av förprocessordirektiv är följande:

  1. # definiera
  2. # inkludera
  3. # ifdef
  4. # undef
  5. #ifndef
  6. # om
  7. #annan
  8. #elif
  9. #endif
  10. #fel
  11. #pragma

1. #definiera (makron)

Ett makro är ett kodavsnitt som ersätts av ett värde för makrokoden. Varje makro beskrivs och definieras mestadels av dess # definieringsdirektiv.

Syntax:

#define token value

Det finns två typer av makron:

  • Funktionsliknande makron
  • Objektliknande makroer
Funktionsliknande makron

Funktionen som-makro fungerar nästan som ett funktionssamtal.

Till exempel:

#define MAX(a, b) ((a)>(b) ? (a): (b))

MAX här är makronamnet.

Exempel:

Produktion:

Objektliknande makroer

Objektliknande makron är typen av identifierare ersatt av värde. Det används mest för att representera numeriska konstanter.

#define PI 3.1415

Här kommer värdet på PI att ersättas av makroen.


Produktion:

2. # inkludera

Det finns någon annan funktionalitet för inkluderande förbehandlingsdirektivet. Den har sina egna tre varianter som ersätter koden med den aktuella källkodsfilen.

Tre varianter är följande:

  • #inkludera
  • #include”fil”
  • Inkludera allt annat

#inkludera

Söker efter en fil i den definierade listan med system eller kataloger som anges och söker sedan efter en standardlista med systembibliotek.

#include”fil”

Den här typen används för dina egna anpassade rubrikfiler i programmet. En sökning görs efter en fil med namnet fil först i den aktuella katalogen följt av systemhuvudfiler och nuvarande kataloger för aktuell katalogfil.

# inkludera någonting

Denna typ av inkluderande förbehandlingsdirektiv används när ingen av de andra återstående två typerna av direktivet och dess argument inte passar och tillfredsställer beräkningsstrukturen.

3. #Ifdef

Kontrollerar om makroen definieras av # definiera eller inte. Om ja, kommer den att köra koden annars kommer den inte.

Syntax:

#ifdef MACRO
(
Code body
)
#endif
#undef:

Att avbryta definitionen av en makro betyder att den är odefinierad och föregås med #undef-direktiv.

Syntax:

#undef token

Produktion:

4. Ifndef

Denna processor kontrollerar om #define är definierat eller inte av #define. Om ja, kör den koden.

Syntax:

#Ifndef MACRO
//code
#endif
#If

Denna processor fungerar som en if-loop endast, den utvärderar uttrycket eller villkoret. Om tillståndet är sant Det kommer att köra koden annars inte.

Syntax:

#if expression
//code
#endif
#else

Direktivet #else-förbehandlare används för att utvärdera uttrycket eller villkoret om villkoret för #if är falskt. Det kan användas med direktiv #if, #elif, #ifdef och #ifndef.

Syntax:

#if expression
//if body
#else
//else body
#endif

Exempel:

Produktion:

5. #Error

Som namnet antyder används felförberedande direktiv för att indikera ett fel och sedan ger kompilatorn ett dödligt fel om feldirektivet hittas och hoppar över nästa sammanställningssteg.

Produktion:

6. #pragma

Det beror på kompilatorn eftersom olika operativsystem och olika maskiner ger alla typer av operativsystemfunktioner som används av kompilatorn för att erbjuda ytterligare information till kompilatorn.

Syntax:

#pragma token

Exempel:

Produktion:

Varje förprocessor har sin egen betydelse som villkoradirektiv används för att kontrollera om en del av programmet ska beaktas baserat på scenarier eller inte.

Anta att ett program vill bli kompilerat i en specificerad miljö med den specifika konfigureringen av operativsystem, men så fort det går till den fasen av kompilering kastar det ett fel eller så kan det ge en ogiltig kod som bara ger sitt program möjlighet till ett stort ne för att länka programmet och köra det när du kör. Det kan också finnas en annan möjlighet där samma källfil med två olika program kan göra en tidskrävande konsistenskontroll eller dess omedelbara data eller skriva ut värdena på data med felsökning.

Dessutom kan dessa scenarier som skapas med beräkning också användas för att köra på en maskin genom att använda förbehandlingsdirektiv.

Slutsats

Utgången från C Preprocessor ser mycket ut som ingången, förutom att alla förbehandlingsdirektiv har ersatts med tomma linjer eller blanksteg. Olika filer och format har olika syntaxer som säger att början av en ny fil har gjorts eller som indikerar att en fil eller bearbetning ska återgå till bör göras innan sammanställningen.

Alla scenarier används för att låta andra känna till C-förbehandlarens kraft och hur den utvecklas med olika versioner av kompilatorn startade med GCC- och ANSI-standarder.

Rekommenderade artiklar

Detta är en guide till förprocessordirektiv i C. Här diskuterar vi typer av förprocessordirektiv med syntax och exempel. Du kan också titta på följande artiklar för att lära dig mer-

  1. Omvänd nummer i C
  2. Sorterar i C
  3. Hashing-funktion i C
  4. Fortsätt uttalande i C
  5. Sorterar i C #
  6. Hur hashing-funktion fungerar i php?

Kategori: