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
357
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
Miksi persuilla ei ole firmoja?
Kuten vasemmisstolaisilla, esim. Sannalla MA\PI. Eikö ole aika erikoista?837101Persut hommasivat Suomeen 35 000 pientä lasta v. 2015
Onko Riikka Purra nyt tavoittelemassa tätä samaa historiallista persujen utopiaa? Purram kaksinaamaisessa pelissä vaadit267063Purran tuhoja tuskin saadaan koskaan korjatuksikaan
Purra on aiheuttanut Suomen taloudelle karmaisevat tuhot. Sen lisäksi Purra on ajanut myös suuren osan Suomen kansasta k1096168Persujen kaksoisstandardit: Räsäsen uhkailu paha, Virran uhkailu hyvä
Tässä taas nähdään kuinka kaksinaamaista porukkaa persut ovat. Mitäs persut tähän?455414Miksette persut irtisanoudu Kirkin lausunnoista?
Kirkhän muun muassa vaati raiskattuja naisia pidättäytymään abortista ja vaimoja alistumaan aviomiestensä tahtoon. Mik845238Demarikultin uhri kertoo
Demarikultin uhri kertoo: “En saanut mennä edes suihkuun ilman lupaa” – Seksuaalisen hyväksikäytön uhri kertoo vuosistaa635205Miksi vasemmistolaiset eivät omista yhtään firmaa?
Vasemmistolaiset eivät omista yhtään firmaa joka työllistäisi ihmisiä. Miksi? No siksi, että jos vasemmistolainen perus405108Sanna valittiin Euroopan huonoimmaksi pääministeriksi
Sannan kaudella Suomi oli ainut maa missä bkt laski. Kannattaa huomata, että luvut valitsi Sannan huonoimmaksi. Ihmiset274595Purran vuoro kiihoittua Lepomäen sääristä
"Ulkoministeri Elina sanoo, ettei muuta pukeutumistaan sen mukaan, kenet tapaa, ja että hän ei suostuisi peittämään kasv163467Vasemmistolaiset paskat eivät nousseet seisomaan kun Akaan kaupunginvaltuusto
vietti hiljaisen hetken Charlie Kirkin muistoksi https://www.aamulehti.fi/uutiset/art-2000011523016.html3003390