"Show Dead Code" verlässlich?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • "Show Dead Code" verlässlich?

      Moin,

      Ich habe mal eine Frage zur "Show Dead Code" Funktion. Und zwar graut er bei mir Funktionen aus, die trotzdem verwendet werden.
      Folgendes als Beispiel:

      Source Code

      1. Dim Variable_a as Byte
      2. Dim Variable_b as Byte
      3. Dim Variable_c as Byte
      4. Dim Variable_d as Byte
      5. If Variable_a = 1 Then
      6. Goto variableaok
      7. Endif
      8. If Variable_b > 10 And Variable_c < 20 And Variable_d = 1 Then
      9. variableaok:
      10. 'Hier ganz viel Code
      11. Endif
      Display All
      Bascom graut bei mir Zeile 2-4 und 9-12 aus ("Toter Code"). Wenn ich das ganze aber auf einen Chip übertrage funktioniert es genau so wie es da steht.
      Wie verlässlich ist diese Funktion? Hat noch wer solche Erfahrungen gemacht?

      Danke und Gruß,
      Marc
    • MarcT. wrote:

      Wie verlässlich ist diese Funktion?
      Zu 100% ist diese Funktion nicht verlässlich und kann auch sehr nervig werden wenn man am Code etwas ändern möchte.
      Das Beste für so eine Kontrolle ist nach wie vor der Programmierer. Denn er weiss am Besten was man braucht und was nicht.
      Wenn ich ein Projekt anfange sind mit unter einige Funktionen im Programm angelegt die noch keine Funktion haben aber für später schon mit eingeplant sind.
      Also würde mich diese Funktion "Show Dead Code" schon nerven. :)
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • Die Frage wie verlässlich dieses Feature vom Bascom-Schöpfer ist, stellt sich mir nicht. ;)
      Für mich ist es ein angebotenes Feature, das mich auf unbenutzte Variablen aufmerksam macht. Ich kann dieses Angebot ja nicht aktivieren, dann bemerke ich nicht, was der Precompiler oder Compiler als unbenutzt zugeordnet hat.

      Andererseits kann ich ja selbst prüfen, ob dieser Hinweis verlässlich ist. Die entsprechende Zeile auskommentieren und schauen ob dann eine bzw diese fehlende Variablenzuordnung reklamiert wird. Es ist eine schöne, gute "Dienstleistung" von Mark Alberts an uns Nutzer, solcherlei anzubieten. Kaum jemand nutzt das komplette sprachliche Angebot, ich verwende diese Option gerne, um nachher etwas im Entwickler-Code auf zu räumen.
    • Für mich ist diese Möglichkeit sehr nützlich, sie erlaubt es, den Code von allen Zeilen zu säubern, die damals "vergessen" geschrieben wurden, weil sie nicht benutzt wurden.
      Ich bin oft überrascht, wenn ich feststelle, dass Zeilen überflüssig oder Variablen unbenutzt sind.
      Dies ist oft der Fall, wenn Sie Teile des Codes aus anderen Programmen übernehmen.


      Ich benutze Deepl zum Übersetzen, ich spreche kein Deutsch, tut mir leid, ;(
      jp Duval auf dem Bascom Forum ;)
    • Ich hatte vor kurzem schon mal einen Thread in dem Zusammenhang eröffnet.
      Beim Entwurf stört dieses Features tatsächlich weil die editierbarkeit beeinträchtigt ist.
      Aber sehr nützlich ist die Anzeige von "Totem Code" dennoch. Nach der Programmentwicklung kann man den Code sehr gut aufräumen.
      Wichtig ist der Tipp von daja, mit dem man diese Einrichtung abschalten kann.
    • Danke schon mal für die Rückmeldungen!

      Michael wrote:


      MarcT. wrote:

      Bascom graut bei mir Zeile 2-4 und 9-12 aus ("Toter Code"). Wenn ich das ganze aber auf einen Chip übertrage funktioniert es genau so wie es da steht.
      Ist doch auch toter Code?die Variablen werden nirgends befüllt.

      Wieso? Wenn Variable_a ungleich 1 ist, findet der Sprung nicht statt und der Zeiger durchläuft Programmzeile 9. Bei meinem Fall (wo mir das aufgefallen ist) frage ich den Wert von DMX - Eingängen ab. Praktisch funktioniert es, ist aber trotzdem ausgegraut.

      Ich lasse das Feature mal lieber inaktiv...
    • Mark hat dazu eine Antwort im MCS Forum gegeben:
      mcselec.com/index2.php?option=…59&page=viewtopic&t=14564


      it is intended for the reason to clean up.
      typically you activate it when your project is done.


      if you have different versions, you can best use conditional compilation like :
      const myproject=1 'use different values for different projects


      #if myproject=1
      dim somevar as byte
      #elseif myproject=2
      dim othervar as byte
      #else
      dim whatever as byte
      #endif


      this is a common way to use source for multiple projects


      but that said, a future update can remove dead code as it is working as expected now.
      _________________
      Mark
      Code first, think later - Natural programmer :D