Návěstí
Author
Albert FloresNávěstí v programovacím jazyce je identifikátor nebo celočíselná konstanta označující nějaké místo (příkaz) ve zdrojovém kódu. Návěstí mají ve většině jazyků formu identifikátoru, v místě své definice obvykle následovaného interpunkčním znakem (zpravidla dvojtečkou). V mnoha vyšších programovacích jazycích návěstí slouží jako cíl příkazu skoku (GOTO). V jazyce symbolických adres lze návěstí používat kdekoli může být adresa (například jako operand instrukce JMP nebo MOV). Návěstí se používají také v Pascalu a v jazycích z něj odvozených. V některých jazycích, např. ve Fortranu a BASICu, lze používat číselná návěstí. Návěstí se také používají pro identifikaci vstupních bodů do přeložených posloupností příkazů (například při ladění programu).
Jazyk C
Návěstí v jazyce C identifikuje příkaz v kódu. Jeden příkaz může mít více návěstí. +more Návěstí pouze definuje místo v kódu; jeho dosažení nemá žádný vliv na provádění programu.
Návěstí ve funkcích
Návěstí ve funkcích jsou tvořena identifikátorem následovaným dvojtečkou. Každá návěstí ukazuje na příkaz v funkci a jeho identifikátor musí být jednoznačný v rámci funkce. +more V jiných funkcích mohou být použita návěstí se stejným jménem. Identifikátory návěstí mají vlastní jmenný prostor - mohou existovat proměnné a funkce se stejným jménem jako má nějaké návěstí.
void foo(int number) { if (number
V tomto kusu kódu je error návěstí. Příkaz goto lze použít pro skok na označený příkaz v kódu. +more Po provedení příkazu goto provádění programu pokračuje příkazem za návěstím.
Návěstí v příkazu switch
V příkazu switch lze používat dva typy návěstí. Jeden typ sestává z klíčového slova case následovaného výrazem, který lze vyhodnotit na celočíselnou konstantu, a dvojtečkou. +more Druhý typ je implicitní návěstí, které sestává z klíčového slova default následovaného dvojtečkou. Návěstí se používají pro vyznačení příkazu v kódu, na který se přejde po vyhodnocení výrazu v příkazu switch. Po vyhodnocení výrazu za klíčovým slovem switch bude provádění programu pokračovat příkazem po návěstí s hodnotou, které se rovná hodnotě výrazu. Pokud příkaz switch žádné takové návěstí neobsahuje, ale existuje větev default, bude provádění programu pokračovat za návěstím default. Pokud příkaz switch neobsahuje žádná návěstí default, provádění programu bude pokračovat za konstrukcí switch.
switch (die) { default: printf("chyba\n"); break;
case 1: case 3: case 5: printf("liché\n"); break;
case 2: case 4: case 6: printf("sudé\n"); break; }
V rámci jednoho příkazu switch musí být celočíselné konstanty přiřazené k jednotlivým návěstím jednoznačné. Příkaz switch může obsahovat větev default:. +more Na pořadí návěstí v rámci přepínače nejsou kladena žádná omezení. Požadavek, aby hodnota návěstí byla celé číslo, dává překladači větší prostor pro optimalizaci.
Návěstí pro rozlišení cyklů
Javascript
V JavaScriptu a některých dalších programovacích jazycích lze použít návěstí pro rozlišení smyček:
top: // Návěstí před vnější smyčkou for (var i = 0; i < 4; i++) { for (var j = 0; j < 4; j++) { if (j
3 && i
2) { alert("i=" + i + ", j=" + j); //i=2, j=3 break top; } } }
alert("i=" + i + ", j=" + j); //i=2, j=3
Příkazy pro opuštění cyklu (jako break v tomto příkladě) nebo zahájení dalšího průchodu cyklem (continue) mohou mít parametr jméno návěstí, které udává, ke které smyčce se příkaz vztahuje; bez uvedení parametru se vztahuje k nejvnitřnější smyčce.
Odkazy
Reference
Související články
Skok (informatika) * Číslo řádku * Příkaz switch
Kategorie:Zdrojový kód Kategorie:Programovací konstrukce Kategorie:Koncepty v programovacích jazycích