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

583

    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. Arman Alizadin viesti puna-aktivisteille: "Pitäkää lärvinne nytkin kiinni"

      Arman Alizad kritisoi vasemmiston kaksinaismoralismia. Iranissa syntynyt suosikkijuontaja Arman Alizad pakeni perheensä
      Maailman menoa
      435
      5392
    2. Minja Koskela nostanut vasemmistoliiton kannatuksen ennätykseen

      Koskela valittiin puolueen johtoon lokakuussa 2024, ja silloin Ylen kysely antoi puolueelle 9,3 prosentin kannatuksen.
      Maailman menoa
      170
      3196
    3. Antti johtaa Petteriä jo 7,1 prosenttiyksiköllä

      Tällä menolla sdp menee kokoomuksesta kierroksella ohi jo tällä vaalikaudella. https://yle.fi/a/74-20213575
      Maailman menoa
      98
      2741
    4. Kelekkakisat

      Mikä vakava onnettomuus sattunut kisoissa. On peruttu koko kisat. Pelastuskopteri näytti käyvän paikalla.
      Nivala
      7
      2432
    5. Kuinka pitkä välimatka

      on teidän kotien välillä?
      Ikävä
      70
      2071
    6. Eikö me voitais

      Vaan harrastaa seksiä kun muusta ei tule mitään
      Ikävä
      44
      2030
    7. Hotelli kainuu

      Mietityttää, hotelli Kainuussa, se, että asiakkaat voivat valita ketä saa olla ja ketä ei, Illan aikana asiakkaina!
      Kuhmo
      52
      1984
    8. Mistä kehon osasta

      Pidät minussa eniten?
      Ikävä
      87
      1737
    9. Pitäis vaan lopettaa

      Sinun kanssa yhteydenpito. Alkaa vaan haluamaan enemmän ja tuskin lopulta mikään kohtaisi. Ja ikävä vaan kasvaa ja lähei
      Ikävä
      12
      1481
    10. MTV: Vappu Pimiä lataa yllättävän kommentin Helena Puolakasta: "Eihän Helena Puolakkakaan..."

      Miten Vappu Pimiä pärjäsi mielestäsi MasterChef-tuomarina? Pimiä aloitti MasterChef-tuomarina uudessa pestissä. Nyt Pim
      Tv-sarjat
      17
      1363
    Aihe