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
427
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
Riikka Purra leikkasi alimmalta tulodesiililtä 15 %
Muistaako kukaan Riikka Purran kovaäänisen vaalilupauksen ennen eduskuntavaaleja? https://yle.fi/a/74-20221152 "THL o2005216Muistele nainen niitä meidän yhteisiä hetkiä
Miltä ne tuntui? Enkö aina huokunut välittämistä, kiintymystä. Eikö sinulla aina ollut hyvä olo kanssani? Minulla ainaki332487Sofia Virta: bänet!
Matkailuautoilija metsänomistaja puoliso on nyt entisen teeren poikia, ja Sofia tekee comebackin vapaille markkinoille.1212307"Suomi voisi ottaa taloudessa oppia Espanjasta"
"Espanjassa talouspolitiikka on löysempää, mutta velka-aste on kääntynyt jopa laskuun.", pohdiskelee Suomen seuraava pää2071953Kokoomus: SDP johtaa kansalaisia harhaan
(Umpityhmät palstademarit ovat taas uskoneet Lindtmanin höpötykset Espanjasta.) SDP harhaanjohtaa kansalaisia talouspol581502Talousasiantuntija sanoo säästämisestä
" parin kuukauden tulo on sellainen, joka voi olla vaikka tilillä tai jossain korkorahastossa, eikä se ole tuottohakuine2681309Lieksa tukee kuntoutumista reilusti
Lieksan sosiaalitoimi käynnistää uuden tukihankkeen – työttömille veneitä hyvinvoinnin edistämiseksi Lieksan sosiaalito861171Siinäpä jäät
Punapää kaipaamaan, kun päätän maallisen vaellukseni. Oma oli valintasi. Sillä minä en jaksa enää kovin pitkää tätä. Ole791019Nato on käytännössä kuollut!
Puolustusliitto Nato on toki natissut liitoksistaan ennenkin, mutta koskaan aiemmin sen vahvin maa Yhdysvallat ei ole uh295977Nyt se on varmaa tieoa - kuntaliitos
Alavus ja Ähtäri liitetään Seinäjokeen. Näin on erään edustajan mukaan päätetty ja asia tulee julkiseksi ensi viikolla.41962