www.amapro.cz & David Bazala [Programování]

Otevře webové stránky AmaPro


Otevře hlavní stránku společnosti AmaPro
Internetové stránky určené pro studenty středních a vysokých odborných škol.


amapro.cz/odkazy Projekt eliminuje vyhledávání klíčových slov na komerčních stránkách a v e-schopech.



Nový projekt AmaPro

register

 

Jedná se o příkaz k určení modifikátoru paměťové třídy¨, respektive systémového umístění. Tento příkaz před proměnnou a jejím typem dává překladači informaci jak s danou proměnnou naložit v době překladu a optimalizace. Požadavkem je to, aby se překladač pokusil vložit do programu informace pro procesor. Tou informací je požadavek ponechat tuto proměnnou v registru CPU. Výhodou je nejrychlejší přístup k hodnota, možnost rychlých výpočtů bez zpomalení při odkládání mezivýsledků. Pokud to bude možné, ponechá procesor proměnnou v některém svém volném matematicko-logickém registru. Vše je plně v moci vybavení procesoru, zatížení procesoru a náš požadavek je pouze zvýšenou žádosti a nemusí být dle očekávání splněn.

 

Paměťová třída register je překladačem implementovaná na lokální proměnné, která vznikají uvnitř jednoduchých funkcí (nejčastěji cyklech ). Po dobu provádění funkce je proměnná registr přímo v CPU. Při opuštění funkce je registr uvolněn pro jiné účely. Proměnnou (resp. registr) lze explicitně nastavit. Implicitní nastavení se neprovádí a obsah registru zůstává z minulého použití. Pro proměnné registr nelze zjišťovat hodnoty adres a tedy nelze používat ukazatelé.

 

Formát  modifikátoru paměťové třídy register:

 

{ register int nazev; …… }

 

Specifika modifikátoru paměťové třídy register:

 

Dle počtu volných registrů a například pokusu ponechat v registru CPU proměnnou double, nemusí být výsledek pozitivní. Zpravidla v nastavení vlastností překladačů lze významně měnit vlastnosti kompilace a optimalizovat tak výsledný program. Je nutné si uvědomit, že na jiných (hlavně nižších) procesorech nemusí být Vaše optimalizace efektivní. Pomocí modifikátoru register lze výrazně snížit množství strojového kódu.

 

PŘÍKLAD: register_1

void rychle(void)                                                //hlavička nové funkce,nic nevrací, nevstupuje nic

{for(register int i=0;i<100;cout<<(i*i++));}   //matematický propočet v registru

                                                                                              //---------------------------------

int main(int argc, char* argv[])                                        //povinná hlavička konzolové aplikace

{                                                                                            //počátek hlavního bloku příkazů

rychle();                                                                               //volání funkce pro rychlý výpočet

getchar();                                                                             //čekání na entr

return 0;                                                                               //výstup z konzolové aplikace

}                                                                                            //konec hlavního bloku příkazů

 

Program demonstruje využití modifikátoru register ve funkci pro rychlé a opakované matematické výpočty. Funkce rychle() je psána tzv. spořivým textem, což někdy může působit dost nepřehledně. Úkolem funkce je rychle vypsat násobky (i*i++), což ale je (2*3, 3*4, 4*5…) dle priorit zpracování. Do funkce rychle nic nevstupuje a nic nevrací. Tělo funkce rychle() je tvořeno pouze příkazem for, který má ve svém těle prázdný příkaz. Výstupní proud je volán přímo z jednoho parametru funkce for. Pokus o přidělení registru pro proměnnou i by mohl být při tak krátké funkci víc než úspěšný. Procesor by jedno volání měl provést rychleji než při použití auto. To je bohužel nepostřehnutelné, takže zda je použit registr či paměťová buňka nezjistíme.

 

 



Abecední seznam všech článků Vyhledání pojmů ve článcích




Řetězce PHP
Informace o chování řetězců v programování PHP.
php/obsah_php_string.php
PHP práce s poli
Práce s poli a položkamy v PHP.
stranky/php_array
Mikropočítače
Seznámení s obecnou problematikou počítačů a mikropočítačů.
programovani/mikropocitace
Číslicové počítače
Základní aritmetické operace, logické operace a vztahy mezi nimi.
programovani/cislicove_pocitace
OnLine televize
Seznam světových on line televizních vysílání
internet/katalog_internetove_televize
Weby o programování
Odkazy na velké servery o programování a vývoji SW
odkazy/programovani
Animované obrázky
Animované gify a malé obrázky pro všeobecné využití.
datove_zdroje/animace
Objektové programování c++
Jazyk C, Objektové programování c++
internet/katalog_programovani_c
JavaScript - ukázky
Příklady užití některých často používaných efektů na stránky.
katalogy/javascript
Otevře stránky Fulltextové vyhledávání na celém serveru
Digitalizované odborné knihy
Velká encyklopedie pojmů a zkratek
Česko - anglicko - německý technický slovník
Klasický katalog firem, služeb a stránek
OnLine překladač  vět a textů (nepoužívá Google)
Stránky pro chvíle oddechu od studia, relaxace
Katalog českých firem dle technologií
Internetový odkazník
Otevře hlavní stranu pro oddíl programování




 Wikipedie   Seznam stránek   Kapitoly témat   Významné servery   Klíčová slova 








Otevře hlavní stranu společnosti AmaPro

Všechna práva vyhrazena. Určeno jen pro osobní využití. Bez předchozího písemného souhlasu správce www.amapro.cz je zakázána jakákoli další publikace, přetištění nebo distribuce jakéhokoli materiálu nebo části materiálu zveřejněného na www.amapro.cz a to včetně šíření prostřednictvím elektronické pošty. Články, jejichž přímým autorem není amapro.cz lze publikovat pouze se souhlasem jejich majitelů či administrátoru příslušného webu.