C-kielen virheilmoituksia

Heli Pulkkinen 3.2.1992

(korjauksia Kari Heikkilä 15.6.1992, Vesa Lappalainen 28.12.1992)

Vanhemmat Turbo-C++ ja Borland-C++ kääntäjät antoivat esimerkiksi ilmoituksen

Undefined symbol 'd' in function "main"

Uudemmissa kääntäjissä ilmoitus on pelkästään muotoa

Undefined symbol 'd'

Seuraavat ilmoitukset on otettu vanhemmista kääntäjistä:

Argument 1 missing name in function "funktio"

Aliohjelman "funktio" esittelyssä puuttuu parametrilistasta ensimmäisen muuttujan nimi (muuttujan tyyppi on kyllä esitelty).

Argument list syntax error

Muuttujien esittelyssä on syntaksivirhe. Tarkista aliohjelmien esittelyjen parametri
listat.

Bad file name format in include directive

Include tiedostossa on kentän nimi väärällä formaatilla. Tarkista, että olet kirjoittanut include-tiedostot väkästen ( <, > ) tai heittomerkkien ( ", " ) sisälle.

Bad ifdef directive syntax in function "funktio"

Aliohjelmassa "funktio" on ifdef-rakenteessa jotain väärää.

Both return and return with a value used in function "funktio"

Aliohjelmassa "funktio" on sekä pelkkä return että return jonkin arvon (joka halutaan palauttaa aliohjelmasta) kanssa. Tarkista, että jostakin return:sta ei ole unohtunut palautettavaa arvoa pois.

Call to function "funktio_1" with no prototype in function "funktio_2"

Aliohjelmassa "funktio_2" kutsutaan aliohjelmaa "funktio_1", jonka esittelyssä on jotakin epäselvää. Tarkista puuttuuko aliohjelman "funktio_1" esittelystä parametri
listasta esimerkiksi sana void, onko aliohjelma esitelty vasta kutsun jälkeen (alioh
jelman "funktio_2" jälkeen) tai onko aliohjelman "funktio_1" esittely unohdettu pois h-tiedostosta.

Case outside of switch in function "funktio"

Aliohjelmassa "funktio" on switch-lauseessa jokin tapaus jäänyt lohkon ulkopuolelle. Tarkista, että switch-lauseessa on lohkon aloittava ja lopettava sulku oikealla paikal
laan, ja että muuttuja, jonka mukaan valinta tehdään, on switch-sanan jälkeen.

Case statement missing : in function "funktio"

Aliohjelmassa "funktio" puuttuu case-rakenteesta kaksoispiste.

Code has no effect in function "funktio"

Code has no effect in function "funktioAliohjelmassa funktio" (jossain kohtaa) kirjoitetulla ohjelmakoodilla ei ole vaikutusta ohjelman suoritukseen. Tarkista, että aliohjelmasta "funktio" ei poistuta aiottua aikaisemmin, ja että sulut eivät puutu jonkin sellaisen aliohjelman kutsusta, jonka esittelyssä on aliohjelman parametrilistan paikalla sana void.

Compound statement missing } in function "funktio"

Aliohjelmasta "funktio" puuttuu lohkon lopettava oikean puoleinen lausesulku.

Declaration syntax error

Jossakin esittelyssä (esim. parametreja esiteltäessä) on syntaksivirhe. Tarkasta puuttuuko aliohjelman esittelystä parametrilista.

Declaration was expected

Esittely puuttuu. Tarkista, että aliohjelmia esiteltäessä parametrilistasta ei ole unohtunut parametreja pois.

Division by zero in function "funktio"

Aliohjelmassa "funktio" tapahtuu nollalla jako.

Do statement must have while in function "funktio"

Aliohjelmassa "funktio" do-while-lauseesta puuttuu while-osa tai while-sanan jälkei nen suluissa oleva lopetusehto-osa.

Do-while statement missing ( in function "funktio"

Aliohjelmassa "funktio" do-while-lauseesta puuttuu vasemmanpuoleinen sulku. Tarkista puuttuuko while-sanan jälkeinen lopetusehto-osa.

Duplicate case in function "funktio"

Aliohjelmassa "funktio" on case-lauseessa kaksi samanlaista valintamahdollisuutta.

Expression syntax in function "funktio"

Aliohjelmassa "funktio" on jokin syntaksivirhe. Jotain saattaa puuttua. (Esimerkiksi ehtolauseesta on unohtunut tai-ehdosta toinen osa pois.)

Extra parameter in call to "funktio_1" in function "funktio_2"

Aliohjelmassa "funktio_2" kutsuttaessa aliohjelmaa "funktio_1" on kutsuun kirjoitettu liikaa parametreja. Kannattaa tarkistaa onko aliohjelman funktio_1 esittelystä unohtunut jokin parametri pois.

Field identifier expected in function "funktio"

Aliohjelmassa "funktio" puuttuu kentän määrittely. Tarkista, että tietueen kenttään viitattaessa nuolen oikealle puolelle on kirjoitettu jokin (oikea) kenttä.

For statement missing ; in function "funktio"

Aliohjelmassa "funktio" puuttuu for-lauseesta puolipiste. Kannattaa tarkistaa, että puolipiste ei ole unohtanut for-sanan jälkeisten sulkujen sisältä, ja että mikään kolmesta mahdollisesta lausekkeesta (sulkujen sisältä) ei ole unohtunut pois (mikäli ne ovat tarpeellisia).

Function call missing ) in function "funktio"

Aliohjelmassa "funktio" puuttuu jotakin toista aliohjelmaa kutsuttaessa oikeanpuolei nen sulku. Tarkista, että sulku ei puutu kutsuttaessa funktiota printf.

Function should return a value in function "funktio"

Aliohjelman "funktio" pitää palauttaa jokin arvo. Tarkista, että aliohjelman lopusta ei ole unohtunut return-lausetta pois.

Goto statement missing label in function "funktio"

Aliohjelmassa "funktio" puuttuu goto-sanan jälkeen osoite.

If statement missing ( in function "funktio"

Aliohjelmassa "funktio" if-lauseesta puuttuu vasen sulku. Tarkista, että ehtolauseesta ei puutu vasenta sulkua, tai että ehtolause ei puutu kokonaan.

Illegal character '\' (0x5c) in function "funktio"

Aliohjelmassa "funktio" on sääntöjenvastainen merkki '\'. Tarkista, että rivinvaihto
merkki on kirjoitettu oikein (\n). Merkin '\' tilalla voi olla myös jokin muu merkki.

Illegal structure operation in function "funktio"

Aliohjelmassa "funktio" käytetään tietuetta väärin. Tarkista, että osoittimet ovat oikein (*:t oikeissa paikoissa).

Incompatible type conversion in function "funktio"

Aliohjelmassa "funktio" on yhteensopimaton tyypinmuunnos. Tarkista, että sijoituk
sissa on keskenään yhteensopivat tyypit.

Illegal use of pointer in function "funktio"

Aliohjelmassa "funktio" on osoitinmuuttujaa käytetty sääntöjenvastaisesti. Tarkista, että * on siellä, missä sen pitääkin olla.

Invalid indirection in function "funktio"

Aliohjelmassa "funktio" on osoitteet väärin. Tarkista, että viitattaessa tietueiden kenttiin nuolta (tai pistettä) käyttäen nuolen (tai pisteen) vasemmalla puolella on tietuemuuttaja ja oikealla puolella kentän nimi, ja että ne ovat oikein. Tarkista myös, että *:t ovat niille kuuluvissa paikoissa.

Invalid use of arrow in function "funktio"

Aliohjelmassa "funktio" on nuolen käytössä jotain väärin. Tarkista, että viitattaessa tietueiden kenttiin nuolta käyttäen nuolen vasemmalla puolella on tietuemuuttuja ja oikealla puolella kentän nimi, ja että ne ovat oikein.

Lvalue required in function "funktio"

Aliohjelmassa "funktio" sijoitetaan arvo sääntöjenvastaisesti. Tarkista, että testattaes
sa yhtäsuuruutta, yhtäsuuruusmerkit ovat kahdennetut (==).

Misplaced break in function "funktio"

Aliohjelmassa "funktio" on break väärässä kohdassa. Tarkista, että switch-lauseessa on break:t ja lausesulut ( {, } )oikeissa paikoissa.

Misplaced else in function "funktio"

Aliohjelmassa "funktio" on else väärässä paikassa. Tarkista, että jokaiselle else-
lauseelle löytyy if-lause.

Misplaced endif directive in function "funktio"

Aliohjelmassa "funktio" on endif väärässä paikassa. Tarkista, että olet muistanut kirjoittaa #ifdef:in.

Multiple decleration for 'muuttuja' in function "funktio"

Aliohjelmassa "funktio" on muuttujalla 'muuttuja' kaksinkertainen määrittely.

Must take address of a memory location in function "funktio"

Aliohjelmassa "funktio" on jäänyt muistipaikan osoite välittämättä. Tarkista, että &-
merkki on oikeassa paikassa, ja että muuttujia määriteltäessä myös muuttujien tyyppi on ilmoitettu (eikä pelkästään muuttujien nimiä).

Need on identifier to declare

Rakenteeseen tarvitaan selvennys. Tarkista, että tietueita määriteltäessä typedef-
rakenteessa on sekä sana struct että typedef.

Non-portable pointer assignment in function "funktio"

Aliohjelmassa "funktio" on väärä osoittimen sijoitus. Tarkista *:ien paikat, tietueiden kenttiin viittaukset ja aliohjelmien kutsut.

Non-portable pointer comparison in function "funktio"

Aliohjelmassa "funktio" on verrattu osoittimia väärin. Tarkista *:ien paikat, tietueiden kenttiin viittaukset ja aliohjelmien kutsut.

Non-portable pointer conversion in function "funktio"

Aliohjelmassa "funktio" on väärä osoittimien muunnos. Tarkista *:ien paikat, tietuei
den kenttiin viittaukset, aliohjelmien kutsut ja ettet yritä palauttaa taulukkoa aliohjel masta. Tämä saattaa tulla myös, jos aliohjelman prototyyppi puuttuu.

Parameter 1d missing name in function "funktio"

Aliohjelman "funktio" esittelystä puuttuu parametrilistasta ensimmäisen muuttujan nimi (muuttujan tyyppi on kyllä esitelty prototyypissä).

Parameter 'muuttuja' is never used in function "funktio"

Aliohjelmassa "funktio" muuttujaa 'muuttuja' ei ole koskaan käytetty (vaikka se on ilmeisestikin määritelty aliohjelman alussa).

Pointer required on left side of -> in function "funktio"

Aliohjelmassa "funktio" osoitin puuttuu nuolen vasemmalta puolelta. Tarkista, että tietue, johon haluat viitata on oikein (ettei esimerkiksi * puutu tietueen nimen (nuolen vasemmalla puolella olevan muuttujan) esittelystä).

Possible use of 'muuttuja' before definition in function "funktio"

Aliohjelmassa "funktio" käytetään muuttujaa 'muuttuja' ennenkuin se on määritelty. Tarkista, että haluttaessa sijoittaa muuttujalle 'muuttuja' jokin arvo , niin se todella tehdään, eikä esimerkiksi testata yhtäsuuruutta.

Possibly incorrect assigment in function "funktio"

Aliohjelmassa "funktio" on mahdollisesti väärä määritys. Tarkista, että yhtäsuuruuden (==) paikalla ei ole sijoitusta (=).

Size of 'muuttuja' is unknown or zero in function "funktio"

Aliohjelmassa "funktio" muuttujan 'muuttuja' koko on tuntematon tai nolla. Tarkista, että taulukoita määriteltäessä olet muistanut määritellä niiden koot.

Size of structure or array not know in function "funktio"

Aliohjelmassa "funktio" jonkin rakenteen tai taulukon koko on tuntematon. Tarkista, että olet muistanut määritellä taulukoiden koot.

Statement missing ; in function "funktio"

Aliohjelmasta "funktio" puuttuu puolipiste.

Structure passed by value in function "funktio"

Aliohjelmassa "funktio" välitetään tietua arvona (hidasta ja vie pinoa). Tarkista, että *:t ja &:t ovat oikeilla paikoillaan (eli että osoitteet ovat olemassa ja oikeat).

Suspicious pointer conversion in function "funktio"

Aliohjelmassa "funktio" on epäilyttävä osoitinmuunnos. Tarkista, että *:t ja &:t ovat oikeilla paikoillaan.

Switch statement missing ( in function "funktio"

Aliohjelmassa "funktio" puuttuu switch-lauseesta vasen sulku. Tarkista, että switch-
lauseessa on muuttuja, jonka mukaan valinta tapahtuu, ja että molemmat lohkon lopettavat sulut ( { ja } ) on mukana.

Too few parameters in call to "funktio_1" in function "funktio_2"

Aliohjelmassa "funktio_2" kutsuttaessa aliohjelmaa "funktio_1" on kutsussa liian vähän parametreja.

Type mismatch in parameter 'muuttuja' in call to "funktio_1" in function "funktio_2"

Aliohjelmassa "funktio_2" kutsuttaessa funktiota "funktio_1" on kutsussa muuttujan 'muuttuja' tyyppi väärin.

Undefined label 'osoite' in function "funktio"

Aliohjelmassa "funktio" on tuntematon osoite 'osoite'. Tarkista, että goto-lauseen osoite on kirjoitettuna sinne, minne halutaan hypätä.

Undefined symbol 'muuttuja' in function "funktio"

Aliohjelmassa "funktio" on tuntematon symboli 'muuttuja'. Tarkista, että olet muista
nut määritellä kaikki muuttujat.

Unreachable code in function "funktio"

Aliohjelmassa "funktio" on kirjoitettu sellaista koodia, jota ei koskaan saavuteta. Tarkista, että aliohjelmasta ei poistuta aiottua aikaisemmin tai ettei aliohjelmassa ole ikuisia silmukoita.

Unterminated string or character constant in function "funktio"

Aliohjelmassa "funktio" on päättymätön merkkijono tai merkkijonovakio. Tarkista, että olet muistanut laittaa merkkijonon tai merkkijonovakion loppuun heittomerkit (").

Void functions may not return a value in function "funktio"

Aliohjelma "funktio", joka on määritelty void-typpiseksi, ei voi palauttaa arvoa nimessään.

Muuttujalla alkavat virheilmoitukset

'i' is assigned a value which is never used in function "funktio"

Aliohjelmassa "funktio" on muuttujalle i asetettu jokin arvo, jota ei ole kuitenkaan käytetty mihinkään.

'i' is declared but never used in function "funktio"

Aliohjelmassa "funktio" on esitelty muuttuja i, mutta sitä ei ole käytetty mihinkään. Jos olet käyttänyt muuttujaa i for-lauseessa, tarkista onko for-sanan jälkeisissä suluis
sa kaikki kolme lauseketta mukana.

Sanastoa

Seuraavassa on koottu useimmin virheilmoituksissa esiityviä sanoja. Ensimmäisessä sarakkeessa on sana englannin kielellä, toisessa sarakkeessa on sanakirjasta otettu käännös suomeksi ja viimeisessä sarakkeessa on sanan "c-kielinen versio", joka on laitettu sellaisiin sanoihin, joiden sanakirja-muoto ei vastaa hyvin c-kieltä.

sana englanniksi	sanakirjakäännös	c-kielinen versio

add	lisätä, laskea yhteen

again	uudelleen, jälleen

all	kaikki

argument	peruste, todistelu	muuttuja, parametri

array	jono	taulukko

arrow	nuoli

assignment	määrääminen, jakaminen	sijoitus

bad	huono, väärä

breakpoint	-	keskeytyskohta

build	rakentaa

call	kutsu, kutsua

cascade	vesiputous	pinota (ikkunat) päällekäin

change	vaihtaa, vaihto

character	kirjoitusmerkki	merkki (kirjain)

clear	selvä, tyhjentää

clipboard	-	leikepöytä

close	sulkea, lopettaa

code	koodi

comparison	vertaus, vertailu

compile	koota, toimittaa	kääntää

compiler	toimittaja, kokoaja	kääntäjä

compound	yhdistetty	lohko

constant	vakio

content	sisältö

conversion	muuntaminen	muunnos

copy	jäljennös, kopio

cursor	-	kursori, kohdistin

cut	leikata

debug	-	etsiä virhettä

debugger	"luteen tappaja"	virheen jäljitin

declare	julistaa, ilmoittaa	esitellä

declaration	julistus, ilmoitus	esittely

definition	määritys, määritelmä

delete	poistaa

directive	ohjeellinen

directory	ohjaava, neuvova	hakemisto

division	jakolasku

duplicate	kaksinkertainen

edit	toimittaa	korjailla

effect	vaikutus

environment	ympäristö

error	virhe

evaluate	arvioida	selvittää (lausekkeen arvo)

example	esimerkki, malli

expression	ilmaisu, ilmaus	lauseke

few	muutamat, harvat

field	kenttä

file	kortisto, mappi	tiedosto

find	löytää, hankkia	etsiä

format	kirjainkoko, formaatti	muoto

full	täysi, kokonaan

function	tehtävä	aliohjelma, funktio

get	saada

go	mennä

help	auttaa, apu

identifier	tunnistin

illegal	laiton, luvaton

include	käsittää, sisältää

incompatible	yhteensopimaton

incorrect	virheellinen, väärä

index	osoitin, hakemisto

indirect	epäsuora

indirection	epäsuora osoitus

info	ilmoitus, tieto

inspect	tarkistaa, tutkia

invalid	mitätön	vaillinainen,väärä

item	eräs, yksityiskohta

line	rivi

link	rengas, yhdistää	linkittää, koota

linker	yhdistäjä	linkittäjä, kokoaja

list	luettelo, lista

local	paikallinen

locate	paikallistaa, määrittää

location	paikka, sijainti

make	tehdä, valmistaa

memory	muisti

menu	ruokalista	lista, valikko

message	viesti, ilmoitus

misplaced	väärin sijoitettu

miss	puuttua

missmatch	ei-vastaava

modify	muuttaa, määrätä

move	siirtää

new	uusi

next	seuraava

non-portable	ei-siirrettävä

note	viesti, merkintä

number	numero, luku

open	avata

operation	toimenpide, toiminta

options	valinnanvara

output	tuotanto, tuotos, tuloste

over	yli

parameter	parametri, muuttuja

paste	kiinnittää	liittää, sijoittaa

pointer	osoitin

previous	edellinen, aikaisempi

print	kopioida, tulostaa

program	ohjelma, ohjelmoida

project	hanke, ehdotus	projekti

prototype	perustyyppi	"aliohjelman otsikon esittely"

quit	lähteä, jättää	poistua

register	luettelo, rekisteri

remove	siirtää, poistaa, erottaa

replace	palauttaa, syrjäyttää

required	puuttua, tarvita

reset	kiinnittää uudelleen	"nollata"

restore	palauttaa, vahvistaa

return	palata

run	juosta	ajaa (ohjelma)

save	pelastaa	tallettaa

screen	varjostin, valkokangas	näyttö

search	etsiä, tutkia, hakea

shell	runko, kuori

show	näyttää, esittää

size	koko

stack	pino

statement	ilmoitus

step	askel	"suorittaa lause kokonaisena"

string	jono, rivi

structure	rakenne

suspicious	epäilyttävä

tile	tiili	pinota (ikkunat) ruudukoksi

toggle	polvi

topic	aihe, ajankohtainen

trace	hahmotella, löytää	"suorittaa lause tarkemmin"

transfer	siirtää, vaihtaa

type	tyyppi

undefined	määrittelemätön

unreachable	saavuttamaton

unterminated	päättymätön

user	käyttäjä

value	arvo

variable	muuttuva, muuttuja

watch	kello, katsella	muuttujien katselu (ikkuna)

window	ikkuna

zero	nolla

zoom	muuttaa kokoa