Vad är en förprocessor?

I allmänhet, när någon hänvisar till en processor i datoranvändning, menar de något slags kiselchip som utför beräkningar. P:et i CPU, GPU, APU, NPU och många andra former av logikchips står för "Processing", dvs Central Processing Unit. Var och en av dem är en specifik typ av processor, optimerad för sin specifika funktion. En förprocessor har dock ingenting att göra med fysiska processorer som CPU eller GPU. Istället är det en programmeringsterm, specifikt relaterad till kompilerade språk.

Vad är en kompilator?

En kompilator är en mjukvara som kompilerar ett specifikt programmeringsspråk till maskinkod. Alla programmeringsspråk måste konverteras till maskinkod, eftersom de mänskliga läsbara instruktionerna som utgör användbara programmeringsspråk inte är direkt körbara av datorn. Vissa är designade för att tolkas i farten när koden körs. Detta tillvägagångssätt är mycket flexibelt vilket gör det enkelt att göra mindre ändringar. Många andra programmeringsspråk måste dock kompileras för att kunna exekveras. I små program tar detta inte nödvändigtvis lång tid. Med större program kan kompileringen dock ta minuter eller till och med timmar.

Så varför skulle du vilja använda ett språk som behöver kompileras? Tja, det är svårare att bakåtkonstruera. Tolkade programmeringsspråk har ofta sin kod distribuerad som den är, vilket gör det enkelt att "stjäla". För företag som vill skydda sin immateriella egendom, infogar kompilering ett komplext och opålitligt steg av reverse engineering för att se den faktiska koden. Kompilerad programvara tenderar också att vara mindre, eftersom den har optimerats för exekvering. Detta är egentligen inte ett problem med små skript, men när det handlar om stor programvara, hundratals megabyte eller till och med gigabyte i storlek, kan detta ha en märkbar effekt.

Så vad gör en förprocessor?

En förprocessor är ett verktyg som körs över kod innan den kompileras. Vanligtvis kommer en kompilator automatiskt att anropa förprocessorn när den startar, men de kan också köras separat. Förprocessorns uppgift är att ställa in koden exakt som avsett. Det gör den främst genom att utföra sök- och ersättningsfunktioner.

I C är det till exempel standardpraxis att använda ett antal standardbibliotek. Dessa bibliotek definierar en serie funktioner som tillhandahåller standardfunktioner. För att importera dessa bibliotek används nyckelordet "#include" följt av ett biblioteksnamn. Förprocessorn söker igenom koden efter satser som "#inkludera" och ersätter dem. I fallet med "#include" infogar förprocessorn hela innehållet i det angivna biblioteket.

Detta gör att du kan hålla den faktiskt skrivna koden lättläsbar samtidigt som du använder många kraftfulla och redan existerande verktyg. Det sparar dig från att behöva uppfinna hjulet på nytt för varje applikation eller att behöva klistra in en del av eller hela biblioteket i kodbasen.

En annan potentiell användning av en förprocessor är att ta bort eller lägga till viss funktionalitet beroende på avsikten med bygget. Om du till exempel vill testa en ny konstruktion kan det vara väldigt användbart att inkludera ett gäng felsökningssteg. Inte bara behövs dessa inte i utgåvor, utan de gör faktiskt den kompilerade programvaran större. En förprocessor kan kontrollera kompilatorargument och avgöra om viss funktionalitet måste inkluderas eller ignoreras. I likhet med detta kommer en förprocessor vanligtvis att ta bort kommentarer före kompilatorn, eftersom dessa inte bör inkluderas i en build.

Slutsats

En förprocessor är ett verktyg som körs av en kompilator för att manipulera koden innan den faktiskt kompileras. Även om förprocessorn kan anropas separat, anropas den vanligtvis som en del av kompileringsprocessen. Förprocessorn letar efter vissa definierade strängar och ersätter dem med standardinnehåll. För kommentarer finns ingen ersättning, men för uttalanden som inkluderar externa bibliotek ersätter förbehandlaren uttalandet med innehållet i det faktiska biblioteket. Förprocessorn kan också ta kompileringstidsargument för att gate viss funktionalitet. Detta används ofta för att inkludera eller utesluta felsökningsfunktioner från test- eller releaseversioner.


Hur man klona en hårddisk

Hur man klona en hårddisk

I den moderna digitala tidsåldern, där data är en värdefull tillgång, kan kloning av en hårddisk på Windows vara en avgörande process för många. Denna omfattande guide

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Står du inför felmeddelandet när du startar din dator som säger att drivrutinen WUDFRd inte kunde laddas på din dator?

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Upplever du NVIDIA GeForce-felkod 0x0003 på ditt skrivbord? Om ja, läs bloggen för att hitta hur du åtgärdar det här felet snabbt och enkelt.

Vad är SMPS?

Vad är SMPS?

Lär dig vad som är SMPS och innebörden av olika effektivitetsklasser innan du väljer en SMPS för din dator.

Varför slås inte min Chromebook på

Varför slås inte min Chromebook på

Få svar på frågan Varför slås inte min Chromebook på? I den här användbara guiden för Chromebook-användare.

Hur man rapporterar nätfiskebedrägerier till Google

Hur man rapporterar nätfiskebedrägerier till Google

Lär dig hur du rapporterar en bedragare till Google för att hindra dem från att lura andra med den här guiden.

Roomba stannar, sticker och vänder sig om – fixa

Roomba stannar, sticker och vänder sig om – fixa

Åtgärda ett problem där din Roomba robotdammsugare stannar, fastnar och fortsätter att vända sig om.

Hur man ändrar grafikinställningar på Steam Deck

Hur man ändrar grafikinställningar på Steam Deck

Steam Deck erbjuder en robust och mångsidig spelupplevelse precis vid dina fingertoppar. Dock för att optimera ditt spelande och säkerställa bästa möjliga

Vad är isoleringsbaserad säkerhet?

Vad är isoleringsbaserad säkerhet?

Vi skulle fördjupa oss i ett ämne som blir allt viktigare i världen av cybersäkerhet: isoleringsbaserad säkerhet. Detta förhållningssätt till

Hur man använder Auto Clicker för Chromebook

Hur man använder Auto Clicker för Chromebook

Idag skulle jag fördjupa dig i ett verktyg som kan automatisera repetitiva klickuppgifter på din Chromebook: Auto Clicker. Detta verktyg kan spara tid och