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

593

    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. "Miko Bergbom, miksi euron bensa maksaa kaksi euroa?"

      Valtakunnan suurin kaupallinen porvarimediakin kyselee nyt miksi perussuomalaisset ovat rikkoneet tärkeimmän vaalilupauk
      Maailman menoa
      182
      6573
    2. Olen Päivi Räsäsen puolella

      En oe uskovainen enkä kristillisdemograattikaan mutta onhan tuo naurettavaa laittaa Päivi syylliseksi omasta mielipit
      Maailman menoa
      693
      4003
    3. SDP: "On hyvä että bensiinin hinta nousee"

      Suurin oppositiopuolue SDP on mielissään siitä, että bensan hinta nousee suomalaisille. https://www.iltalehti.fi/polit
      Maailman menoa
      149
      3305
    4. Nuhteettomia edustajia

      Korkein oikeus tuomitsi Päivi Räsäsen kiihottamisesta kansanryhmää vastaan Kansanedustaja Päivi Räsästä (kd.) vastaan no
      Politiikka
      382
      3062
    5. Mistä ihmeestä sitä viirasi?

      Oliko tuo Timo Kalima hyvä silmälääkäri? Mikähän hänen silmiinsä osui kun piti mennä tuollaista tekemään. Kaikki näytti
      Jyväskylä
      24
      2764
    6. "Mieheksi ja naiseksi hän heidät loi."

      Räsäsen tuomio on iso harppaus woke-valtioksi. – Tässä maassa on nyt selvästi kiellettyjä sanoja ja ajatusrikoksia. –
      Maailman menoa
      163
      2095
    7. Päivi Räsänen tuomittiin rikoksesta...

      ...kiihottamisesta kansanryhmää vastaan. Tuskin tajuaa silti vieläkään, että raamattu ei ole lakikirja. https://yle.fi/a
      Maailman menoa
      709
      1969
    8. SDP haluaa tappaa maaseudun - bensan hinta mahdollisimman korkealle

      Maaseudulla auto on välttämätön asia, ja lähes kaikilla on bensa-autot. Kuinka tyhmä pitää olla jos äänestää demareita?
      Maailman menoa
      77
      1628
    9. Partamies hoi!

      En aio häiritä jos on mukavampi olla hiljaa tai jos siellä kaukana sinun paikkakunnalla on jo joku hoito. Miten olisi re
      Ikävä
      38
      1622
    10. Korkein oikeus antaa Räsäselle vastauksen klo 9. Varmaan vapautus

      Miten veikkaat että Päiville käypi? Päivi pitää lehdistökonferenssin klo 9.30. Koko media on läsnä. 7 v taistelu on ohii
      Luterilaisuus
      514
      1581
    Aihe