Tässä olis guruille pähkinä purtavaksi. Elikkäs kyse on pointtereista ja argumenteista. Miksi C koodi pitää aloittaa aina aliohjelmalla, kun käytetään pointtereita ja argumentteja.
esimerkiski tälläinen koodipätkä toimii vain toisinpäin, miksi? Voiko C kääntäjillä olla eroja siinä että jotkut kääntää koodia miten vaan ja toiset ei sitten kuin vain yhdellä tavalla koodattuna???
Tässä sitten esimerkki, ensin main ja sitten funktiokutsun kautta Aliohjelma. Kääntäjä valittaa erroria.
/****** EI TOIMI ********/
int main(){
int variable;
Aliohjelma();
}
int *Aliohjelma(){
int *pointer;
return(pointer);
}
/******END*********/
...ja tälläistä kääntäjä valittaa:
error #2120: Redeclaration of 'Aliohjelma' previously declared .... found 'int * __cdecl function(void)' expected 'int __cdecl function'.
tässä olisi sama asia toisinpäin, eli ensin Aliohjelma ja sitten main. Ja nyt toimii.
/************* T O I M I I ************/
int *Aliohjelma(){
int *pointer;
return(pointer);
}
int main(){
int variable;
Aliohjelma();
}
/***********E N D**********/
Miksi?
järjestyksellä väliä?
3
390
Vastaukset
- asdasdasd
Et ole esitellyt tuota funktiota. Mistä se kääntäjä tietäis millainen funktio se on?
Tee tyyliin:
int *Aliohjelma(); /* esittely, kääntäjä tietää funktion tyypin */
int main()
{
Aliohjelma()
}
int *Aliohjelma()
{
int *pointer;
/* tietty tää osoitin pitäis alustaa jne, mut en ota kantaa siihen */
return pointer;
}- aloittelija_19
Ajattelinkin että tuo funktion esittely puuttui, mutta en vaan millään muistanu että miten se kirjoitetaan. Nyt toimii taas
Osoittimen alustuksen lisäksi pitää vielä muistaa asettaa siihen jotain järkevää (esim. mallocilla varattu muistialue), jos sen meinaa vielä palauttaakin funktiosta. Muuten paluuarvona on osoitin, joka ei osoita enää paljoa minnekään, joten ohjelma todnäk vain kaatuu.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Vedonlyöntiä .
Olen valmis lyömään ison vedon , että homma kaatuu . Jos kerta Sivonen ei lähde mukaan , niin ei tuoho usko kukaan muuka323345Mikä on pahinta, mitä kaivatullesi
pelkäät tapahtuvan? Jos kuolemaa, vakavia sairauksia yms. ei lasketa?1032535Turvaan tulleet lähettävät omia lapsiaan vaaraan - hullua
MOT-ohjelman jakso ”Loma vaihtui kahleisiin” kertoi, kuinka Suomessa ja muualla Euroopassa asuvat somaliperheet lähettäv692498- 842074
- 111558
- 411398
Päivi Räsänen sai kutsun kongressiin todistajaksi.
Pystyykö Päivi pysymään totuudessa ja kertomaan kongressille, että raamattu ei ole lakikirja jota pitäisi noudattaa poli3781026Minkä kouluarvosanan (4-10) annat Thank God, sä tulit! sarjalle?
Katsoitko Thank God, sä tulit!? Uusi viihdeohjelma ei ollut kaikkien makuun, mutta jotkut tykkäsivät. Minkä kouluarvos35822TVssä TomCruisen superjännä Vaarallinen tehtävä Mission Impossible Rogue Nation
Alkaa uskomattomalla lentokone kuvauksella. Toimintaelokuvan jatko-osa agentti (Tom Cruise) on hankaluuksissa, kun järje28808Kaikkea hyvää kaikki
Kaikkea hyvää kaikki ja positiivisia ja hyviä asioita. Kylmää on kovia pakkasia. Pikku hiljaa kevättä kohti taas. Voimaa6750