järjestyksellä väliä?

aloittelija_19

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?

3

434

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Elikkä Riikka Purra ei kannusta Suomea edes euroviisuissa

      Sellaista on persujen "isänmaallisuus", oma kansa viimeiseksi ja ulkomaalaiset ensimmäisiksi. https://www.iltalehti.fi/
      Maailman menoa
      177
      2681
    2. Mitä kirjainta haluaisit

      rakastella juuri nyt?
      Ikävä
      164
      2499
    3. Victoria-tytär, 16, vertaa Martina Aitolehteä ja Esko Eerikäistä: "Iskä on enemmän..."

      Martina Aitolehti ja Esko Eerikäinen ovat ex-pari ja heillä on yksi yhteinen tytär, Victoria. Eerikäinen oli Huomenta Su
      Kotimaiset julkkisjuorut
      118
      2187
    4. Riikka: 3 euron bensa, Ruotsi: bensavero jopa alle EU-minimin

      Eipä vaan suomalainen autoilija saa kaikkien rakastamalta Riikalta sympatiaa. Ruotsissa on eri meininki, siellä diskutee
      Maailman menoa
      61
      2063
    5. Riikka runnoo: datakeskuksille tulee UUSI yritystuki

      "Suomen valtio erikseen tukee esimerkiksi kryptovaluuttaan tai aikuisviihteeseen tai muuhun keskittyviä datakeskuksia."
      Maailman menoa
      3
      1729
    6. "UKRAINA HYÖKKÄÄ LATVIAN ÖLJYVARASTOON JA JUNAAN"!!!

      "MATKUSTAJAJUNA SAI UKRAINALAISLENNOKEISTA VAKAVIA VAURIOITA"!!!
      Maailman menoa
      59
      1444
    7. Hilma Hallo-ahon kuvat julki - kiistää SSK ryhmän nimen merkityksen

      Eduskunnan puhemies Jussi Halla-ahon tyttären ympärille on noussut skandaali. Lehdistö sai selville Hilma Hallo-ahon kuu
      Perussuomalaiset
      204
      1420
    8. Miten kestätte tyhmiä?

      Miten usein turhaudutte tai suututte ihmisiin, joilla on matala älykkyys? Minulla tätä tapahtuu useita kertoja viikossa
      Sinkut
      224
      1153
    9. Sofia Belorf rehellisenä suhteen alusta Jeff-miljonäärirakkaaseen: "Hän ei..."

      Sofia Belórfin elämä on tapetilla Sofia Bling Bling Dubai -realityssä. Näyttävien puitteiden rinnalla Belórf avaa elämää
      Kotimaiset julkkisjuorut
      93
      1128
    10. Äänestän seuraavissa eduskuntavaaleissa persuja.

      Persut on ainoa puolue, joka aidosti vastustaa islamisaatiota Suomessa.
      Maailman menoa
      368
      1069
    Aihe