Seite 3 von 5

Verfasst: 24.11.2005 22:05
von AND51
Ja, das weiß ich, das das kleienr wird. Mir gings nur darum, ob meine variante nicht kleiner/kompakter/komfortabler ist als dein 2. beitrag in diesem thread, z. B.

Verfasst: 24.11.2005 22:59
von Deeem2031
Warum labert ihr denn immernoch doch darüber? Es gibt keine Grenze und fertig ist. Das irgendwann der Speicher voll ist, gilt ja nicht nur für Ifs sondern allgemein für den ganzen Code.

Verfasst: 25.11.2005 15:31
von PAMKKKKK
Danke für eure Bemühungen :lol:

Ich bin nun genauso schlau wie vorher... /:->

Ein normales IF, ist ja ein normaler Programmvorgang.

Code: Alles auswählen

IF......
Endif
IF......
Endif
IF......
Endif
IF......
Endif
IF......
Endif
Dies sollte natürlich immer funktionieren, sonnst wäre die ganze Programmiererei = :freak: !!
Eine Schleife, mit einem IF, macht ja genau das! Es kann also nicht durch eine Schleife simuliert werden.

Ich meinte verschachtelte IF´s:

Code: Alles auswählen

IF......
  IF......
    IF......
      IF......
        IF......
        Else
        Endif
      Else
      Endif
    Endif
  Endif
Endif
Da muss PB sich nämlich Rücksprung Adressen und Labels merken.
Deeem2031 hat geschrieben:
ts-soft hat geschrieben:Man kann nicht soviel If machen, wie Speicher da ist, die EndIf müssen ja auch noch passen :mrgreen:
Ein Endif ist aber nur ein Label, es braucht im fertigen Programm also überhaupt keinen Speicher.
Ich dachte immer ein Label ist eine (Programmrelative) Speicher-Adresse. Sich Speicher-Adressen zu merken kostet mindestens 4Byte!
Und wenn man sich die Rücksprungadresse auch noch merken muss wann ist der Stack voll???

/:-> :roll: :?

Verfasst: 25.11.2005 15:57
von ts-soft
Deem2031 hats doch schon oben geschrieben, es gibt keine Grenze in diesem Sinne. Diese Grenze findet man normallerweise nur in interpretierten Sprachen. Die Grenze ist erreicht, wenn Windows keinen Speicher mehr zur Verfügung stellen kann. Hängt also von der verwendeten OS-Version, RAM und Festplattenkapazität ab. Das ganze ist aber eigentlich unwichtig, weil diese Grenze gilt nicht nur für If usw. sondern diese Grenze gilt immer.

Verfasst: 25.11.2005 16:13
von Tsuki-Namida
Den spaß musste ich aber auch mal mit machen :D
also mein letztes "EndIf" ist auf zeile 7465 ich habe die If's nicht gezählt auf jedenfall stürtzt der compiler immer ab egal ob ich testen möchte oder eine exe machen möchte. wie es aus sieht gibt es doch eine grenze :D
das ganze sieht bei mir si aus:

Test.l=0
If Test.l = 0
Test2.l+1
If Test.l = 0
Test2.l+1
If Test.l = 0
Test2.l+1
If Test.l = 0
Test2.l+1
<<<Und so weiter>>>
EndIf
EndIf
EndIf
EndIf
Debug Test2
End

Verfasst: 25.11.2005 16:16
von Batze
Wie funktioniert denn das If überhaupt ?
Irgendwie So?

Code: Alles auswählen

if A = B
 debug "bla"
endif

->

0 If A = B = 0 : Adresse Zeile 3 
1
2 sachen die nur bei nicht erfüllter Bedingung ausgeführt werden.
3 ; Endif benötigt keinen Speicher
Edit: Stürzt eigentlich mein Code (der mit den vielen Ifs) bei euch auch ab?

Verfasst: 25.11.2005 18:05
von sen-me
darum sagte ich ja
ich denke er kann solange verschachteln bis RAM voll is, denn ich glaube der merkt sich ja das :wink:

Verfasst: 25.11.2005 18:11
von Tsuki-Namida
bei dem test den ich gemacht habe war mein ram nicht voll ... aber der compiler ist abgestürtzt

Verfasst: 25.11.2005 18:57
von Deeem2031
PAMKKKKK hat geschrieben:
Deeem2031 hat geschrieben:
ts-soft hat geschrieben:Man kann nicht soviel If machen, wie Speicher da ist, die EndIf müssen ja auch noch passen :mrgreen:
Ein Endif ist aber nur ein Label, es braucht im fertigen Programm also überhaupt keinen Speicher.
Ich dachte immer ein Label ist eine (Programmrelative) Speicher-Adresse. Sich Speicher-Adressen zu merken kostet mindestens 4Byte!
Das stimmt zwar, allerdings merkt sich nicht das "Endif" selber die Adresse sondern das "If". Die 4 Byte gehören also zum Speicherbereich des "If"s
PAMKKKKK hat geschrieben:Und wenn man sich die Rücksprungadresse auch noch merken muss wann ist der Stack voll???

/:-> :roll: :?
Welche Rücksprungadresse? Wieso sollte der Stack voll sein? Bei If-Abfragen wird der Stack überhaupt nicht belastet.

Verfasst: 25.11.2005 19:59
von Batze
@Deem2031: Also so ähnlich wie ich es geschrieben habe?