ccpp:konstanty

SQLite & PDO SQLite support missing in this PHP install - plugin will not work
The Sqlite Php Extension is mandatory. It seems that it's not available on this installation.

Toto je starší verze dokumentu!


Konstanty

Konstanta je pojmenovaná hodnota, která se nemění. Nejčastěji její hodnotu definujeme už v době překladu. Programovací jazyk C++ podporuje i konstantu definovanou za běhu. Pro všechny konstanty platí, že jejich hodnotu nelze po jejím nadefinování změnit.

Preprocesorové konstanty se zpracovávají v první fázi překladu. Nemají žádný faktický vliv na paměť, protože se jedná pouze o automatizované nahrazení definovaného identifikátoru, obdobně jako by jste použili před kompilací příkaz editoru - najít a nahradit (CTRL+H) a nahradili konkrétní název za hodnotu.

Nespornou výhodou je nulová alokace extra paměti, nevýhodou naopak, že není silně typovaná a kompilátor o ní nemá valné informace.

#define PI 3.14159
 
// some code
 
int main(/*...*/)
{
  printf("Hodnota pi je %lf.\n", PI);
}

Jedná se o speciální proměnou označenou klíčovým slovem const, kterou je třeba definovat hodnotou. Kompilátor se k takové hodnotě chová jako k proměnné, ale zabrání změnu její hodnoty. Znamená to, že fakticky existuje na nějakém místě v paměti. Kompilátor pak může lépe kontrolovat syntax/sémantiku kódu a optimalizovat ho.

Tento typ konstanty je možné definovat i za běhu. Často se hodí pokud chceme něco na chvíli uložit pod vlastním identifikátorem a víme, že se to nebude měnit. Kompilátor pak dokáže takovou konstantu optimalizovat pro lepší výkon.

const double PI = 3.14159;
 
// some code
 
int main(/*...*/)
{
  printf("Hodnota pi je %lf.\n", PI);
 
  int cislo;
  scanf("%d", &cislo);
  const int UZIV_KONSTANTA = cislo;
  printf("Konstanta definovana za behu je %d.\n", UZIV_KONSTANTA);
 
}
  • ccpp/konstanty.1598606193.txt.gz
  • Poslední úprava: 2020/08/28 11:16
  • autor: bures