Delphi turvallisempi

C_Vaarallinen

eräässä C -ohjelmointioppaassa oli varoittava esimerkki ohjelmointivirheen seurauksena päättymättömästä silmukasta:

#include
void main(void) {
unsigned i;
for (i=10; i >= 0; i--) {
printf(“i is %u\n”, i);
}
}

--------
Entäpä vastaava for -silmukka Delphillä:

procedure TForm1.bnLoopTestClick(Sender: TObject);
var
SL : TStrings;
L : Longword;
begin
//
SL := memLog.Lines;
for L := 10 downto 0 do begin
SL.Add( IntToStr(L) );
// ---------------------------
if L >= $FFFFFFF0
then begin
//
SL.Add('--- Päättymätön silmukka - lopetettu. ---');
EXIT;
end;
end;
end;

Arvatkaapa, tulostaako ohjelma tuon '--- Päättymätön silmukka - lopetettu. ---' ?

EI !!

Ohjelma tulostaa kiltisti numerot 10:stä alaspäin 0:aan saakka ja lopettaa.

2

672

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Delphi fani

      Mitä ihmeen varoittavaa tuossa nyt on, meinaa c-koodissa, ikuinen luuppiko, huh!

      Eiköhän koodata tuo C sitten hiukan erilailla, kun ei haluta ikuista härdelliä, tuon nyt luulisi
      olevan itsestään selvyys, mutta kaipa nuo oppaan tekijät aina ovat niitä "virheistä oppii miehiä"


      ////////////////////////////////////////////////
      #include

      void main(void) {
      unsigned i;
      for (i=10; i >= 0; i--) {
      if (i >= 0xFFFFFFF0) break;
      printf("i is %u\n", i);
      }
      }
      ///////////////////////////////////////////////

    • vaarallista!

      Kyllä aloittaja nyt tais tehdä kärpäsestä härkäsen. Päättymättömissä luupeissa ei ole itsessään mitään vaarallista, ne voi joissain tilanteissa olla toki harmillisia kun ei exitiä ole vaan ohjelma menee takas alkuun mutta kyllä niistä aina jollain konstin irti pääsee.

      Sen sijaan mä kokisin vaaralliseksi jotkut tietyt toimenpiteet jotka on alatason rautakäskyjä, esim. väärillä käskyillä voidaan vaikka vahingossa formatoida kovo, tai vaikka tyhjentää bios.

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

    Luetuimmat keskustelut

    1. Uskaltaako tässä luottaa siihen että

      Ehkä rakastetaan toisiamme?
      Ikävä
      99
      973
    2. Tunnusmerkkejä Kaivatulle

      Jotain mistä toinen tunnistaa. Täällä vaalea nainen kaipaa miestä jolla vaaleat hiukset ja asuu maalla. Pelataanko kortt
      Ikävä
      54
      908
    3. Oletko nainen enää täällä?

      En ole tunnistanut kirjoituksiasi hetkeen. Ainoastaan yhdessä neutraalissa ketjussa, missä ei ollut kyse tunteista. Hyv
      Ikävä
      61
      810
    4. Miehen ja naisen ystävyys

      Mitä järkeä on miehen ja naisen ystävyydessä jos toinen ajattelee toisesta enemmän= on rakastunut ja toivoo yhdessä oloa
      Ikävä
      142
      731
    5. Pidätkö itseäsi varattuna

      Kaivatullesi?
      Ikävä
      65
      675
    6. 78
      531
    7. Mitähän meinaat

      Vai meinaatko mitään kohtaamisen suhteen?
      Ikävä
      39
      508
    8. Oletko hyljännyt minut mies?

      Toivottavasti et. 🥺🥺🥺🥺🥺
      Ikävä
      40
      506
    9. Pyydetään tiedonantoa "hyvinvointitalo"-hankkeen nykytilanteesta

      ja aikataulusta. Odotetaanko uutta hallinto-oikeuden päätöstä. Hallinto-oikeushan antoi teknisenlautakunnan lupajaosto
      Pyhäjärvi
      86
      497
    10. Nykytiedon valossa

      Tekisitkö nykyisellä tietämyksellä jotain toisin ja mitä se olisi?
      Ikävä
      70
      486
    Aihe