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

661

    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. Mikä on sun mielestä suurin kusetus maailmassa?

      Mikä on sun mielestä suurin kusetus maailmassa?
      Ikävä
      271
      25836
    2. Voima biisejä, mikä antaa hyvää mieltä ja vomaannuttaa

      Mikä antaa voimaa ja hyvää mieltä, jos tuntuu hankalalta ja vaikealta, voima biisi tai biisejä?
      Ikävä
      47
      2195
    3. Kysy jotain kaivatultasi

      Tämä ketju on sitä varten.
      Ikävä
      199
      1576
    4. Huomenna sähkö maksaa jo yli 60 snt/kWh. Milloin ALV putoaa?

      Kysynkin persuilta, että milloin aiotte pudottaa sähkön arvonlisäveron kuten Marinin hallitus teki sähkön hinnan noustes
      Maailman menoa
      138
      1447
    5. Varmaan koet, ettet ole tehnyt mitään väärää

      Mutta olet sinä tehnyt.
      Ikävä
      28
      1219
    6. Mitä ajattelet hänestä

      Millaisena pidät kaivattuasi?
      Ikävä
      122
      988
    7. Huomioon ottaminen

      Oletko osannut ottaa kaivattusi tai hänen (mahdolliset) tunteet huomioon? Oletko sivuuttanut ne tarkoituksella tai vahin
      Ikävä
      30
      922
    8. Sinkkusiskoni pliis kertokaa

      Sinkkunaisena haluaisin joskus normaalia läheisyyttä ja yhdessäoloa, ilman velvoitteita. Olen vapaa ja lapseton, eikä ex
      Sinkut
      84
      821
    9. Nainen, se on sellainen juttu että kun sä vain nautit

      Niin me miehet tehdään ne työt että sä voisit nauttia. Kato siinä ku sä meet mukamas töihin suojatyöpaikkaas lämpimään t
      Ikävä
      82
      776
    10. Voitko väittää

      Ettet flirttaillut tai ainakin yrittänyt osoittaa kiinnostusta?
      Ikävä
      75
      698
    Aihe