$G: Seskupování jednotek do segmentů

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání

Pro Windows a chráněný režim. Umožňuje určovat skupiny jednotek, u kterých chcete, aby je linker umístil do stejného segmentu.

 Syntaxe:       {$G JménoJednotky, JménoJednotky...}
 Typ:           Lokální
Popis

Direktiva $G umožňuje určovat skupiny jednotek, u kterých chcete, aby je linker umístil do stejného segmentu. Seskupení jednotek do stejného segmentu zajistí, že jednotky budou swapovány do a z paměti ve stejném okamžiku. Direktiva $G se především používá k seskupování jednotek, obsahujících vyřaditelný kód.

Každá direktiva $G určuje jednu skupinu jednotek. Direktivy $G jsou platné pouze v programu nebo knihovně a musejí být za klauzulí uses Kompilátor ohlásí chybu, pokud se pokusíte zařadit jednotku do více než jedné skupiny. Kromě skupin, vytvořených pomocí $G, kompilátor udržuje implicitní skupinu, která obsahuje všechny jednotky, které nebyly explicitně seskupeny.

Linker minimalizuje počet kódových segmentů ve vykonatelném souboru tím, že kombinuje všechny jednotky, které patří do stejné skupiny. Dvě nebo více jednotek se vloží do stejného kódového segmentu, jestliže patří do stejné skupiny a mají stejné atributy kódového segmentu a jestliže kombinovaná velikost nepřekračuje preferovanou velikost segmentu.

Linker nikdy neumístí jednotky, které patří do různých skupin, do stejného kódového segmentu.

Viz také
$C
$S