5.21 ERROR - 19 - LIMIT: too many types
Prilis vela typov. Kompiler ma tabulku v ktorej drzi vsetky typy
pouzite v programe, a tato tabulka je teraz plna. Toto su vsetky
typy (napr. int ****ptr) a nie iba menovane. Obmedzenie poctu
typov je jedinym sposobom ako setrit pamat, mozno pouzit
operator typu cast na zrusenie viacerych komplexnych retazcov
ukazovatelov atd.
5.22 ERROR - 20 - duplicate declaration - type mismatch
Dvojita deklaracia-zmatok v typoch. Obvykle to znamena ze meno
bolo deklarovane dvakrat. Zvolte dalsie meno pre jednu z
premennych. Moze to byt umyselna dvojita deklaracia , taka ako
pouzitie funkcie pred jej definovanim;v tomto pripade boli
porusene pravidla o typoch. Napr. funkcia pouzita pred svojou
definiciou je implicitne deklarovana ako int ; nasledujuca
definicia to musi dodrzat.
5.23 ERROR - 21 - duplicate declaration - srorage class
mismatchDvojita deklaracia - zmatok v triedach pamati. Toto obycajne
znaci ze meno premennej bolo deklarovane dvakrat. Zvolte ine
meno pre jednu z premennych. Spomente si , ze v C moze byt meno
deklarovane niekedy dvakrat (napr: ked funkcia je pouzivana
skor ako je definovana alebo ked to iste meno je pouzite pre
prvky dvoch rozlicnych struktur) a v tomto pripade je dolezita
druha cast spravy. To znaci ze v tomto pripade vyzadovane
podmienky (napr ze prvky maju tu istu suradnicu v strukture)
neboli dodrzane.
5.24 ERROR - 22 - LIMIT : global symbol table full
Plna tabulka globalnych symbolov. Kompiler ma tabulku, v ktorej
detaily o vsetkych globalnych premennych v programe. Jediny
sposob ako setrit miesto v tejto tabulke je zredukovat pocet
globalnych premennych.
5.25 ERROR - 23 - LIMIT : too much global data
Prilis vela globalnych dat. Nie je dost priestoru v pamati na
vsetko co ma obsahovat, a je treba viac priestoru pre globalne
premenne.
5.27 ERROR - 25 - LIMIT : local symbol table full
Kompiler ma tabulku, ktora obsahuje detaily o kazdej lokalnej
premennej a navesti vo funkcii. Tato tabulka je plna. Priestor
moze byt usetreny zredukovanim poctu lokalnych premennych vo
funkcii ktora zapricinila problem, je mozne rozdelit funkciu na
casti, ktore pouzivaju menej premennych, alebo pouzit menej
"goto" navesti prepisanim uzivatelskych sluciek a podmienok.
5.28 ERROR -26 - this parameter was not in parameter list
Tento parameter nie je v zozname. Iba tie premenne, ktore boli v
zozname parametrov medzi () definicie funkcie sa mozu vyskytut
znova v deklaracii pred zaciatkom tela funkcie.
5.29 ERROR - 27 - undefined variable(s)
Nedefinovana premenna. Na konci kompilacie programu kompiler
kontroluje ci vsetky premenne pouzite v programe boli spravne
definovane a vypise tie ktore neboli. Su to obvykle funkcie a ak
su to kniznicne funkcie mozu byt podmienecne zaclenene pomocou
kniznicneho prehladavania. Tato chyba nevyvola znovu kompiler.
mozete pokracovat a pisat dalsi vstupy do kompileru neskor (take
ako #include ?stdio.lib?).
5.30 ERROR - 28 - bad function return type
Zly navratovy typ funkcie.V C su iste obmedzenia typov , ktore
moze funkcia vratit ako svoju hodnotu. Podrobnosti su ukazane v
oddieli 8.4 knihy Kernighan, Ritchie : The C reference manual.
5.31 ERROR - 29 - no arrays of functions
Ziadne polia funkcii. Ale je mozne pouzivat polia ukazovatekov
na funkcie. Mozno to je to co potrebujete.
5.32 ERROR - 30 - LIMIT : expresion too complicated - too
many argumentsVyraz prilis lomplikovany - prilis vela argumentov. Ucelom je ze
toto obmedzenie nemoze byt dosiahnute v normalnom pouzivani. Ak
sa vyskytne, rozdelte vyraz alebo ho rozclente niekolkymi
zatvorkami.
5.33 ERROR - 31 - LIMIT : expresion too complicated - too many
operators.Prilis vela operatorov. Cielom je aby sa toto obmedzenie
nevyskutlo pri normalnom pouzivani. Vid 5.33
5.34 ERROR - 32 - bad type combination
Zla kombinacia typov. Pre kazdy operator vo vyraze existuju
pravidla o typoch operandov a niekde v tomto vyraze boli tieto
pravidla porusene. Kompiler zobrazi spravu o poruche ihned ako
je to mozne , ale musi vycislit operandy predtym ako spozna ich
typy a moze ich skontrolovat. Detaily o kombinaciach ktore su
dovolene su v sekcii 7 v " The C reference manual". Tato sprava
sa tyka binarnych a ternarnych operatorov ( napr. + or ? : ).
5.35 ERROR - 33 - bad operand type
Zly typ operandu. Podobne ako predosla chyba ale tato sa tyka
operandov unarnych operatorov ako su * & ! atd.
5.36 ERROR - 34 - need an l value
Potrebuje l hodnotu. Niektore operatory mozu pRijat iba take
argumenty , ktore su l hodnotami (napr. ++ -- & ). Pravidla o
nutnosti l hodnoty a o tom co je to l hodnota su v The C
reference manual, ale zhruba povedane l hodnota je adresa pamate
do ktorej sa ma ukladat. Zapamatajte si , ze meno pola a funkcie
nie je l hodnotou.
5.37 ERROR - 35 - not a defined member of a structure
Nedefinovany clen struktury. Iba meno clena struktury alebo
zmesi sa moze vyskytnut napravo od -> alebo od operatora.
5.38 ERROR - 36 - expecting a primary here
Chyba tu prvotny vyraz. Kompiler hlada prvotne vyrazy ( take ako
mena premennych ) vo vyrazoch. Toto je dalsia chyba , ktora moze
miast, pretoze je to skutocne negativny prikaz. Kompiler sa dom-
nieva , ze je v tele funkcie (takze vyrazy su dovolene) a rozho-
dne ze aktualny vsup nie je deklaracia alebo prikaz ale ze to
musi byt vyraz. Dalej rozhodne ze aktualny vstu nie je operator
a tak to musi byt prvotny vyraz. Jednym specialnym pripadom,
kedy sa vyskytne tato sprava je neukonceny komentar.Ak si to
premyslite ked sa to stane , pravdepodobne pochopite preco.
5.39 ERROR - 37 - undefined variable
Nedefinovana premenna. Vo vyraze ste pouzili meno nedefinovanej
premennej. Definujte ju ako globalnu alebo na vrchu funkcie.
5.40 ERROR - 38 - need a type name
Treba meno typu. Operatory sizeof a cast budu pracovat iba s
menami typov , bud jedneho zo zakladnych typov alebo
deklarovaneho pomocou typedef. Neakceptuju "anonymne typy" ako
su "int **(*(*())[])()" a operator sizeof neakceptuje meno
premennej ( pretoze s menami typov mozete pisat programy
prehladnejsie a pomaha to udrzat kompiler malym.
5.41 ERROR - 39 - need a constant expression
Treba konstantny vyraz. Tu moze kompiler vyratat iba konstantny
vyraz , ale narazil na nieco co nie je konstantou.
5.42 ERROR - 40 - can only call functions
Moze sa iba volat funkcia. Lava zatvorka po mene premennej
vyzera ako pokus o volanie tej premennej ako funkcie, a sposobi
ze premenna musi byt deklarovana ako funkcia nico vracajuca.
mozbyt , ze chyba '+' alebo nieco take medzi premennou a
zatvorkami alebo chyba nepriame '*' pred premennou.
5.43 ERROR - 41 - : does not follow a ? properly
: spravne nenasleduje za ? . Kompilator nasiel dvojbodku tam,kde
nepatri. ':' moze nasledovat za menom labelu (navestia) alebo za
vyrazom "case",pripadne ako cast podmienkoveho vyrazu e1 ? e2 :
e3 . Tu vyzera ako cast vyrazu, ale nerovna sa '?'. Skontrolujte
to,co vyrazu predchadzalo,ak si myslite,ze sa rovna '?' !! Naj-
jednoduchsi sposob je vsunut dodatocne zatvorky pre istotu. Uve-
domte si,ze podmienkove vyrazy sa grupuju sprava dolava,ked su
zosietene (vnorene).
5.44 ERROR - 42 - Destination of an assignment must be lvalue
Priradovat sa musi do typu lvalue. Specialny typ chyboveho hla-
senia,ktory Vam ma co najrychlejsie oznamit,ze na lavej strane
priradovacieho vyrazu nieje lvalue. Pravidla co je lvalue su
uvedene v manuali,ale zhruba povedane lvalue je adresa pamati,
do ktorej mozno ukladat. Zvlast si pamatajte,ze meno pola a fun-
kcie NIESU lvalue.
5.45 ERROR - 43 - need a : to follow a ? - check bracketting
Za ? treba : - skontrolujte zatvorkovanie. Kompilator ocakava
dvojbodku ako cast podmienecneho prikazu e1 ? e2 : e3 a nenasiel
ju. Zvlast si uvedomte,ze e2 nemoze byt priradovaci vyraz,ak
nieje ozatvorkovany a ze podmienecne prikazy sa grupuju sprava
dolava,ak su zretazene.
5.46 ERROR - 44 - need a pointer
Treba pointer. Na pouzitie nepriamej operacie na vyraz, musi byt
ukazovatelom na nieco. Nepriamy operator moze byt explicitny '*'
alebo implicitny v '->' operatore alebo v popise prvku pola
e1 [e2].
Poznamenavame ,ze Hisoft C kompiler nepripusta cele cislo pred
'->' ako je diskutovane v casti 14.1 C reference manual. Ak
chcete vlozit strukturu na absolutnu adresu pouzite cast na
napisanie vyrazu:
typedef char *char_ptr
(cast (char_ptr) 0x005C) -> fcb_filename [ 0 ] ='A';Umyslom je pomoct predist chybam, ktore mozu porusit pamat a
umoznit lahsi prenos programov z jedneho typu stroja na druhy.
5.47 ERROR - 45 - illegal parameter type
Nepripustny typovy parameter. Je niekolko typov , ktore nemozu
byt pouzite ako parametre funkcii. Tymito typmi su struktury
zmesi a dalsie funkcie. Mozete ukazat pointrom na kazdy z tychto
typov.
5.48 ERROR - 46 - RESTRICTION : Floating Point not implement
5.49 ERROR - 47 - cannot use this operator with floats
argumentsNemozete pouzivat tento operator s argumentom s plavajucou
ciarkou. Tato sprava sa nebude vyskytovat dokia bude existovat
predosla.
5.50 ERROR - 48 - bad declaration
Zla deklaracia. Skontrolujte co je dovolene v deklaracii.
5.51 ERROR - 49 - storage class non valid in this context
Trieda pamati neplatna v kontexte. Napr. nie su registre alebo
automaticke globalne.
5.52 ERROR - 50 - Neexistuje chyba 50.
5.53 ERROR - 51 - duplicate declaration of structure tag.
Dvojita deklaracia struktury tag.
5.54 ERROR - 52 - use a predeclared structure for parameters
Pouzite preddeklarovanu strukturu parametrov.
Namiesto deklarovania obsahu struktury v zozname parametrov,
deklarujte najprv strukturu a dajte jej meno ( bud tag alebo
pouzitim typedef ). Potom pouzite meno na deklaraciu parametrov.
Vzdy budete potrebovat strukturu znova na to aby ste vlozili
aktualne argumenty do funkcie
5.55 ERROR - 53 - structure cannut contain itself
Struktura nemoze obsahovat samu seba. Mozete zahrnut jeden druh
struktury priamo do druhej, ale na zhotovenie zoznamu
uzivatelskych funkcii pouzite ukazovatel struktur. Napr.:
struct list
{
int value
struct list * next;
}5.56 ERROR - 54 - bad declarator
Zly deklarator.Skontrolujte syntax deklaratora pocla manualu C.
5.57 ERROR - 55 - missing ')' in function declaration
Chybajuca ')' v deklaracii funkcie. Deklaracia funkcie (na roz-
diel od definicie funkcie) musi mat za menom "()" a nesmie mat
zoznam parametrov. Deklaracia funkcie len vravi,ze isty identi-
fikator je typu funkcia s urcitym vysledkom, zatialco definicia
obsahuje tiez telo funkcie. Funkcie mozno definovat len na
najhornejsej urovni programu,kdezto deklaracia funkcie sa moze
objavit ako clen struktury,parameter atd.
5.58 ERROR - 56 - bad formal parameter list
Zly zoznam formalnych parametrov.Zoznam formalnych parametrov
funkcie je len zoznam identifikatorov.Dodatocna informacia o ty-
poch sa dava neskor vo zvlastnej deklaracii,tesne pred zaciatkom
funkcie.
5.59 ERROR - 57 - type should be function
Typ by mal byt funkcia. Kompilator sa domnieva,ze toto je
definicia funkcie a zistil,ze meno funkcie nieje typu funkcia s
urcitym vysledkom. Skontrolujte co je dovolene podla manualu C.
5.60 ERROR - 58
Nieje ziadna chyba 58.
5.61 ERROR - 59
Neexistuje chyba 59.