Kääntäjän bugiko?

ihmettelevä_testailija

Eli minulla on seuraavanlainen metodi:

procedure TForm1.Test(ASrc : Integer; ASrc2 : Integer);
var
P : PByte;
begin
P := @ASrc; // P = 0x12F5BC
ShowMessage(IntToStr(Integer((P^))));

Dec(P, 4); // P = 0x12F5B8

//P := @ASrc2; // P = 0x12F5B8

// Näyttää väärän arvon kun Dec käytössä vaikka
// Osoite on sama kuin suoralla sijoituksella, miksi, eli kun käytän suoraa sijoitusta (kommentoitu) tuo näyttää oikein?
ShowMessage(IntToStr(Integer((P^))));
end;

En ymmärrä miksi tuo näyttää tuon viimeisen arvon päin mäntyä, kutsu on seuraavanlainen:
Test(5,8);

Delphi on CodeGear™ Delphi® 2007 for Win32® R2 Version 11.0.2804.9245

3

666

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • hemmoit

      Jäi vähän epäselväksi mikä on ko koodin tarkoitus...

      Mutta miksi PByte (Osoitin 8 bittiseen arvoon) 32 bittiselle integerille ? eikö PInteger ole olemassa...

      Haluatko nyt lisätä ASrc arvoon 4, vai yritätkö saada selville ASrc2:sen osoiteen pinossa (joka olisi kikkaillua) ?

      • Ihmettelevä_testailija

        Joo, tosiaan tarkoitus oli saada selville tuon pinon logiikka/arvot, aloittelija kun olen, osaatko siis kertoa tarkemmin kuinka tuon teen, teoria on kyllä hallussa, mutta eipä tuo käytäntö oikein. Eikö tavu pointteri tuossa ole ihan ok?


      • öty-
        Ihmettelevä_testailija kirjoitti:

        Joo, tosiaan tarkoitus oli saada selville tuon pinon logiikka/arvot, aloittelija kun olen, osaatko siis kertoa tarkemmin kuinka tuon teen, teoria on kyllä hallussa, mutta eipä tuo käytäntö oikein. Eikö tavu pointteri tuossa ole ihan ok?

        Dec(P, 8) ... Taitaa olla 64 bittinen voit tietenkin käyttää tavupointteria mutta jos laitat 255 suuremman luvun niin huomaat mitä tapahtuu, jos taas "P:Pinteger" niin pitää olla Dec(P,2) eli vähennetään 2 integeriä Kokeile myös "pointer" ja "PWord"


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Selvästi näyttää siltä, että SDP:n kannattajat hyväksyy kiusaamisen

      ja seksuaalisen ahdistelun, kun puolueen kannatus pysyy korkealla. Mitä tämä kertoo demari-äänestäjien moraalista?
      Maailman menoa
      137
      3576
    2. Päivi Räsäsen seksipaljastus loksauttaa Katja Ståhlin leuat! Elämäni biisi kohujakso tv:ssä!

      Elämäni biisi -suosikkisarjan uusinnat ovat startanneet ja nyt vuorossa on sarjan 2. jakso v. 2019. Sinisille sohville
      Suomalaiset julkkikset
      55
      3161
    3. Muistan vuosikymmenten takaa

      Toivottavasti voit hyvin ja jaksat työssäsi. Olet upea ja erinomainen ihminen, toivon kaikkea hyvää.
      Ikävä
      12
      2614
    4. Montako mitalia Suomi saa talviolympialaisista?

      Nyt heittäkää veikkaus Suomen mitalisaldosta ja mistä lajeista metallilätkät tulevat. Oma veikkaukseni on 6 mitalia. -
      Maailman menoa
      115
      2171
    5. Voiko kaivattu olla liian vanha?

      Tai muuten huonokuntoinen...
      Ikävä
      171
      1816
    6. Kokemuksia Rehux Oy yrityksestä työpaikkana?

      Jonkin aikaa seurannut kyseistä firmaa sivusta, näyttäisi, että tälläkin hetkellä olisi peräti 3 eri roolia tai paikkaa
      Työpaikat
      31
      1366
    7. Missä näit viimeksi kaivattusi?

      Menikö kohtaaminen hyvin vai ujousko esti lähestymästä?
      Ikävä
      54
      1172
    8. IS: Riitta Väisänen kärsii ikävästä vaivasta - Vaipparalli ja 40 antibioottikuuria takana...

      71-vuotias Riitta Väisänen on kertonut tuoreista terveysongelmistaan. Väisänen on kertonut julkisuudessa jo aiemmin vaih
      Terveys
      16
      963
    9. Jos mies oikeasti haluaa sinut

      Hän ei ota riskiä että menettäisi sinut. Ei pienintäkään. Mies ei jätä vastaamatta viesteihin eikä pidä sinua epätietois
      Ikävä
      110
      933
    10. Polvinen hylkäsi Persut

      Polvinen teki ratkaisun, lähti Persujen paraati paikalta. Moni on jättänyt puolueen tavallisten kansalaisten joukosta.
      Kajaani
      158
      922
    Aihe