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
379
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
Muistakaa persut, että TE petitte, ei kokoomus
Miksikö kukaan ei arvostele kokoomusta? No sen vuoksi, että kokoomus noudattaa vaalilupauksiaan. Sen sijaan TE persut,1593260Seuraava hallituspohja - Kokoomus, kepu, persut + KD
Kokoomus saa ainakin 20% kannatuksen ensi vaaleissa, keskusta sanoisin noin 15%, persut todennäköisesti enemmän, ehkä 172262840Outo ilmiö - vasemmistolaiset eivät kirjoita mitään kokoomuksesta
joka sentään johtaa hallitusta, ja jonka talouspolitiikkaa noudatetaan. Nämä muutamat vasemmistolaiset jotka täällä aina702447Maria Veitola kommentoi soutelija Saarion huomionhakuisuutta
"Minusta on jotenkin kuvottavaa, kuinka kovalla intensiteetillä Suomi-media seuraa miessankari Jari Saarion merihätää. S2991690Väestöstä vain vassarit vaihtuvat nopeammin kuin persut
Kevääseen 2023 verrattuna vassareita 50 prosenttia enemmän, ja persuja 25 prosenttia vähemmän.71490Vihervassarit
Vihervassarit sitä, vihervassarit tätä. Minulla on paha mt-ongelma. Se tuli lobotomian jälkioireina. Vihervassarit tät251362Lopetan ikävöinnin
Ei meistä enää koskaan tule mitään. Olen ikävöinyt ja kaivannut enkä saa mitään vastakaikua ja lämpöä. Parempi erillään31251Ei ole liian myöhäistä..
Tule mun luo ja katso silmiin, niin saadaan taas se sanaton yhteys ja sano sitten vain anteeksi rakas ja suutele ja hala31012Ei osattu ratkaista etääntymistä
Mä jäädyin eikä sulla ole taitoa sulattaa. Parempi antaa olla, vaikka toivoin jotain muuta. Miehelle.115920Esprit hoitokdit Varkaudessa?
Asun keskisuomessa ja käyn satunnaisesti äitini luona Varkaudessa. Äitin tarvitsee kohta hoitajan kotiin tai hoitokodin103913