Hlavičkový soubor

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Hlavičkový soubor je důležitou součástí webových stránek, která obsahuje informace o příslušné stránce a je umístěna na jejím začátku. Tento soubor obsahuje specifické direktivy a metadata, které jsou potřebné pro správné fungování a zobrazení webové stránky. Hlavičkový soubor obsahuje informace o typu souboru, kódování, znakové sadě, názvu stránky, popisu, klíčových slovech a dalších údajích. Tato metadata jsou důležitá pro vyhledávače a pro správné zobrazení webové stránky v prohlížeči. Hlavičkový soubor je často využíván také pro vkládání externích souborů, například CSS nebo JavaScriptu, které definují vzhled nebo chování stránky. Celkem je hlavičkový soubor tvořen specifickými značkami a je napsán v HTML nebo XHTML formátu.

Hlavičkový soubor je v informatice speciální soubor, který se používá v některých programovacích jazycích (např. C a C++). Umožňuje vyčlenit některé části zdrojového kódu programu do zvláštních souborů, které lze opakovaně používat. Standardní knihovna jazyka C a standardní knihovna jazyka C++ tradičně deklarují své funkce v hlavičkových souborech.

Novější kompilované jazyky (jako Java nebo C#) nepoužívají dopředné deklarace. Místo toho jsou identifikátory automaticky rozpoznány ze zdrojových kódů a čteny přímo ze symbolů dynamických knihoven, což znamená, že hlavičkové soubory nejsou potřeba.

Charakteristika

Hlavičkové soubory běžně obsahují dopředné deklarace tříd, funkcí, proměnných a jiných identifikátorů. Programátor, který potřebuje deklarovat typový identifikátor ve více než jednom zdrojovém souboru, může identifikátor umístit do hlavičkového souboru. +more Na soubor je pak možné se odkazovat ze zdrojových souborů pomocí direktivy preprocesoru (#include).

Motivace

Nejmodernější programovací jazyky umožňují rozdělit programy do menších částí (jako jsou třídy a metody) a ty rozdělit do více překladových úloh (typicky ve formě zdrojových souborů), které lze poté kompilovat odděleně. Jakmile je potřeba použít metodu na jiném místě, než kde je definována, musí existovat způsob, jak se na ni odkázat. +more Například funkce definovaná tímto způsobem v jednom zdrojovém souboru:.

int secti(int a, int b) { return a + b; }

může být deklarována (jako prototyp funkce) a následně použita v druhém zdrojovém souboru následovně:

int secti(int, int);

int obvodCtverce(int x) { return secti(secti(x, x), secti(x, x)); }

Nevýhodou tohoto postupu je, že prototyp funkce musí být přítomen ve všech souborech, které funkci používají. Další nevýhodu představuje fakt, že pokud dojde ke změně typu návratové hodnoty nebo argumentů dané funkce, musí být všechny prototypy funkce také upraveny.

Použití hlavičkového souboru

Tento postup lze automatizovat použitím preprocesoru jazyka C, takže při použití prototypu je vždy použit ten nejnovější. Například v následujícím kódu je ve zvláštním souboru deklarována funkce (kompilátor nevyužívá názvy parametrů, ty jsou ale užitečné pro programátora):

#ifndef ADD_H_GUARD #define ADD_H_GUARD int secti(int a, int b); #endif

Tento soubor používá tzv. include guard, aby se zabránilo vícenásobné definici stejné funkce. +more Následující kód ukazuje, jak se hlavičkové soubory používají:.

#include "add.h"

int obvodCtverce(int x) { return secti(secti(x, x), secti(x, x)); }

Vždy když je tento kód zkompilován, dojde k vložení aktuálních prototypů funkcí, které jsou deklarovány v add.h. Tím se zabrání vzniku potenciálních kritických chyb.

Umístění hlavičkových souborů

Aby nebylo nutné ve zdrojovém kódu vždy uvádět celou cestu k hlavičkovému souboru, lze překladači sdělit, že se nacházejí na standardním umístění. V tom případě je nutné uzavřít jméno souboru do znaků menší a větší > a použít relativní cestu ke standardnímu umístění:

#include #include

Pokud chceme použít vlastní hlavičkové soubory, uzavírá se jméno souboru do uvozovek a relativní cesta se vztahuje k aktuálním adresáři:

#include "version.h"

Unixové systémy

Hlavičkové soubory jsou v unixových systémech umístěny podle standardu FHS v adresáři /usr/include.

V Linuxu a některých dalších systémech mohou být hlavičkové soubory i v /usr/local/include. V případě stejně pojmenovaných hlavičkových souborů v /usr/local/include a /usr/include se použije hlavičkový soubor v /usr/local/include. +more V adresáři /usr/local/include je zpravidla umístěno jen několik málo hlavičkových souborů, které překrývají jinou verzi téhož hlavičkového souboru ze základní instalace systému umístěné v /usr/include.

Windows

Hlavičkové soubory jsou umístěny v adresáři, kde je nainstalováno Microsoft Windows SDK. Případně mohou být součástí instalace vývojového prostředí (například Microsoft Visual Studio).

Předkompilované hlavičky

Předkompilované hlavičky jsou technika, kterou používají některé překladače jazyků C a C++, aby snížily čas potřebný ke kompilaci, jelikož hlavičkové soubory mohou obsahovat velké množství zdrojového kódu (například hlavičkový soubor windows. h). +more Výsledkem kompilace hlavičkových souborů jsou většinou soubory s příponou . pch nebo . gch.

Podobnou funkci zastávají prefixové hlavičky, které jsou většinou také předkompilovány a jsou připojeny ke všem zdrojovým souborům bez nutnosti explicitní deklarace.

Jednoduchý příklad

Máme hlavičkový soubor header.hpp psaný v jazyce C++:

// header.hpp ...

A ten je inkludován souborem source.cpp:

// source.cpp #include "header.hpp" ...

Při prvním překladu souboru source. cpp jsou vytvořeny a uloženy do souboru header. +morepch předkompilované hlavičky. Při dalším spuštění kompilátoru již nedochází k novému zkompilování header. hpp, namísto toho je použit přímo header. pch.

Alternativy

Některé novější programovací jazyky (jako Java) používají místo hlavičkových souborů systém jmenných schémat, které překladači dovolují najít zdrojové soubory asociované s implementací rozhraní a tříd. V tomto případě je ovšem omezena svoboda při pojmenovávání souborů. +more Tyto jazyky uchovávají informace o funkcích v object kódu a dovolují tak linkeru ověřit, že jsou funkce použity korektně.

COBOL a RPG IV používají způsob inkludování souborů nazývaný copybook. Copybook je vložen do zdrojového souboru podobným způsobem jako hlavičkový soubor a navíc umožňuje nahrazení určitého textu uvnitř něho jiným textem. +more COBOL používá pro připojení klíčové slovo COPY a pro nahrazení klauzuli REPLACING . BY .

Reference

Související články

C preprocesor * Překladač

Externí odkazy

[url=http://www.zezula.net/cz/prog/precompiled_headers.html]Předkompilované hlavičky ve Visual C++[/url]

Kategorie:Programovací jazyk C

Les en-têtes de la bibliothèque C ISO

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top