Co je to preprocesor?

Obecně, když někdo odkazuje na procesor ve výpočetní technice, myslí tím nějaký křemíkový čip, který provádí výpočty. P v CPU, GPU, APU, NPU a mnoha dalších formách logických čipů je zkratka pro „Processing“, tedy centrální procesorovou jednotku. Každý z nich je specifický typ procesoru, optimalizovaný pro jeho specifickou funkci. Preprocesor však nemá nic společného s fyzickými procesory, jako je CPU nebo GPU. Místo toho je to programovací termín, který se konkrétně týká kompilovaných jazyků.

Co je to kompilátor?

Kompilátor je část softwaru, která zkompiluje konkrétní programovací jazyk do strojového kódu. Všechny programovací jazyky je třeba převést na strojový kód, protože člověkem čitelné instrukce, které tvoří použitelné programovací jazyky, nejsou přímo spustitelné počítačem. Některé jsou navrženy tak, aby byly interpretovány za běhu, když je kód spuštěn. Tento přístup je velmi flexibilní a usnadňuje provádění drobných změn. Mnoho dalších programovacích jazyků však musí být zkompilováno, aby je bylo možné spustit. V malých programech to nemusí nutně trvat dlouho. U větších programů však může kompilace trvat minuty nebo dokonce hodiny.

Proč byste tedy chtěli používat jazyk, který potřebuje kompilaci? No, reverzní inženýrství je těžší. Interpretované programovací jazyky mají často svůj kód distribuovaný tak, jak je, takže je snadné „ukrást“. Pro společnosti, které cht��jí chránit své duševní vlastnictví, představuje kompilace vložek složitý a nespolehlivý krok zpětného inženýrství, aby viděli skutečný kód. Kompilovaný software také bývá menší, protože byl optimalizován pro provádění. U malých skriptů to ve skutečnosti není problém, ale při práci s velkým softwarem o velikosti stovek megabajtů nebo dokonce gigabajtů to může mít znatelný efekt.

Co tedy preprocesor dělá?

Preprocesor je obslužný program, který je spuštěn přes kód před jeho kompilací. Kompilátor obvykle automaticky zavolá preprocesor při spuštění, lze je však spustit i samostatně. Úkolem preprocesoru je nastavit kód přesně podle plánu. Primárně to dělá prováděním funkcí vyhledávání a nahrazování.

Například v C je standardní praxí používat řadu standardních knihoven. Tyto knihovny definují řadu funkcí, které poskytují standardní funkce. K importu těchto knihoven se používá klíčové slovo „#include“ následované názvem knihovny. Preprocesor vyhledá v kódu příkazy jako „#include“ a nahradí je. V případě „#include“ preprocesor vloží celý obsah zadané knihovny.

To vám umožňuje udržovat skutečně napsaný kód snadno čitelný a zároveň využívat mnoho výkonných a již existujících nástrojů. Ušetří vám to nutnost znovu vynalézat kolo pro každou aplikaci nebo vkládat některé nebo všechny knihovny do základny kódu.

Dalším potenciálním využitím preprocesoru je odstranění nebo přidání určitých funkcí v závislosti na záměru sestavení. Například, pokud chcete otestovat nové sestavení, může být opravdu užitečné zahrnout spoustu kroků ladění. Nejen, že tyto nejsou potřeba v sestaveních vydání, ale ve skutečnosti dělají kompilovaný software větší. Preprocesor může zkontrolovat argumenty kompilátoru a určit, zda je třeba zahrnout nebo ignorovat určité funkce. Podobně jako toto, preprocesor obvykle odstraní komentáře před kompilátorem, protože by neměly být součástí sestavení.

Závěr

Preprocesor je nástroj spouštěný kompilátorem, který manipuluje s kódem předtím, než se skutečně zkompiluje. Zatímco preprocesor lze volat samostatně, obvykle se volá jako součást procesu kompilace. Preprocesor hledá určité definované řetězce a nahrazuje je standardním obsahem. Pro komentáře neexistuje žádná náhrada, ale pro příkazy, které obsahují externí knihovny, preprocesor nahradí příkaz obsahem skutečné knihovny. Preprocesor může také převzít argumenty v době kompilace, aby hradil určitou funkčnost. To se často používá k zahrnutí nebo vyloučení funkcí ladění z testovacích nebo vydání sestavení.


Jak klonovat pevný disk

Jak klonovat pevný disk

V moderním digitálním věku, kde jsou data cenným aktivem, může být klonování pevného disku v systému Windows pro mnohé zásadním procesem. Tento komplexní průvodce

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Setkáváte se při spouštění počítače s chybovou zprávou, která říká, že se nepodařilo načíst ovladač WUDFRd do vašeho počítače?

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Máte na ploše zkušenosti s chybovým kódem 0x0003 NVIDIA GeForce? Pokud ano, přečtěte si blog a zjistěte, jak tuto chybu rychle a snadno opravit.

Co je SMPS?

Co je SMPS?

Než si vyberete SMPS pro svůj počítač, zjistěte si, co je SMPS, a význam různých hodnocení účinnosti.

Proč se můj Chromebook nezapne

Proč se můj Chromebook nezapne

Získejte odpovědi na otázku Proč se můj Chromebook nezapíná? V této užitečné příručce pro uživatele Chromebooků.

Jak nahlásit phishingové podvody společnosti Google

Jak nahlásit phishingové podvody společnosti Google

V této příručce se dozvíte, jak nahlásit podvodníka společnosti Google a zabránit mu v podvádění ostatních.

Roomba se zastaví, přilepí a otočí – oprava

Roomba se zastaví, přilepí a otočí – oprava

Vyřešte problém, kdy se váš robotický vysavač Roomba zastaví, zasekne a stále se otáčí.

Jak změnit nastavení grafiky na Steam Deck

Jak změnit nastavení grafiky na Steam Deck

Steam Deck nabízí robustní a všestranný herní zážitek přímo na dosah ruky. Chcete-li však optimalizovat své hraní a zajistit to nejlepší možné

Co je zabezpečení založené na izolaci?

Co je zabezpečení založené na izolaci?

Chtěli jsme se ponořit do tématu, které je ve světě kybernetické bezpečnosti stále důležitější: zabezpečení založené na izolaci. Tento přístup k

Jak používat Auto Clicker pro Chromebook

Jak používat Auto Clicker pro Chromebook

Dnes jsme se chtěli ponořit do nástroje, který dokáže automatizovat opakované klikání na vašem Chromebooku: Auto Clicker. Tento nástroj vám může ušetřit čas a