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

659

    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. Muistatko kaivattusi

      Syntymäpäivän? Päivämäärä riittää. 🌹
      Ikävä
      126
      1730
    2. 105
      1215
    3. Postimerkki kirjeeseen ja kortiin maksaa jo 3 euroa!

      https://yle.fi/a/74-20229241 Kyllä tämä on järjetön hinta, Posti tuhoaa itsensä tällä hinnalla, täytyyhän Postin "Herro
      Maailman menoa
      138
      1081
    4. Mulla on ikävä

      sua nainen ja niitä katseita ❤️ Lupaatko, että katseemme kohtaa taas?
      Ikävä
      49
      989
    5. Miten pääsee ujon naisen pään sisään?

      Siis tosi tosi tosi ujon...
      Ikävä
      129
      892
    6. Keitä oli kunnanjohtajan erottajat?

      Kouluja ei ole varaa ylläpitää mutta johtajasopimukseen palaa 100000 euroa ja uuden johtajan hakuprosessi maksaa kymmeni
      Ilmajoki
      52
      887
    7. Atte Harjanne usuttaa eläkeläisvihaan

      Karmeeta kuultavaa aamun uutislähetyksessä, kun Atte Harjanne, tunnettu eläkeläisvihaaja, suitsii sukupolvien välistä v
      Maailman menoa
      240
      858
    8. Helsingin Mäntymäki muuttui Kultajuhlan jälkeen kaatopaikaksi.

      Mitä se kertoo jääkiokosta ja lätkäfaneista? Saikkua huomenna huusi fani yöllä?
      Maailman menoa
      72
      756
    9. Pridekulkue kiellettävä?

      Näin täällä suoraan vaaditaan. Perusteina mitä mielikuvituksellisimmat tarinat. No, miksi ihmeessä kukaan ei ole samalla
      Luterilaisuus
      178
      739
    10. Mä oon tyytyväinen, että ei ole enää tunteita.

      Samalla tajusin, että sun kohdalla tykkäsin enemmän niistä tunteista kuin sinusta persoonana. Halusin väkisin nähdä sinu
      Ikävä
      55
      729
    Aihe