Bug im CBuilder5 Compiler?



  • Hallo.

    int function()
    {
    // daten lesen
    
    reguläres zurückgeben
    return daten;
    }
    

    so jetzt wollte ich was zwischenausgeben

    int function()
    {
    // daten lesen
    
    return zwischenwert;
    
    reguläres zurückgeben
    return daten;
    }
    

    Gibt mir diesen aber nicht aus. Ich kann auch "return 9" reinsetzen. Erst nachdem ich im Menü sage alle Projekte neu erzeugen gibt er mir endlich die "9" aus.

    Was issn das für Mist?



  • schonmal die Hilfe zu return gelesen (Borland C++ Builder 5)?

    BCB-Hilfe schrieb:

    Beschreibung

    Die Anweisung return dient dazu, die aktuelle Funktion zu verlassen und zur aufrufenden Funktion zurückzukehren, wobei optional ein Wert zurückgeliefert werden kann.



  • Bitte? Hast du den obigen Beitrag überhaupt verstanden?



  • Hallo

    Das hat Linnea und hat dir auch einen korrekten Hinweis gegeben.
    Du solltest also diesen Hinweis lesen und verstehen.
    Btw : das ist nicht BCB-abhängig, auch jeder andere korrekte Compiler würde so handeln.

    bis bald
    akari



  • ich glaube er meint eher, dass nach einfachen compilieren der zwischenwert nicht ausgegeben wird (der compiler quasi nicht merkt, dass neuer code eingegeben wurde).

    der borland compiler hängt manchmal und erfordert komplettes neucompilieren des projektes. das ist sehr ärgerlich, gerade in grossen projekten, wenn man die werte im debugmodus überprüfen will und man plötzlich völlig andere ergebnisse bekommt, als eigentlich erwartet. da bin ich auch schon oft drübergestolpert und habe mich geärgert.



  • Danke Sunday. Wenigstens Einer der es verstanden hat :p
    Ich hatte bisher nie spürbar das Problem, aber erst dachte ich schon ich bin total bescheuert und erst nach "Alle Projekte erzeugen" hatte er endlich den richtigen Zwischenwert angezeigt. Und in der Tat .. ich warte ca 30s und das nervt doch irgendwo gewaltig. Naja genug Zeit Däumchen zu drehen 🙄



  • was abhilfe schafft (allerdings nicht für immer):

    lösche alle temporären projekt-dateien (*.tds, .obj) sowie alle temporäre compiler-dateien (.csm, .#) zu finden im installationspfad von builder im verzeichnis lib.

    beim linker einstellen: keine Status-Dateien erzeugen

    und eventuell auf vorkompilierte header verzichten.



  • Danke, werd ich mal ausprobieren 👍



  • Dennoch sei darauf hingewiesen, dass dir da eine der fundamentalsten Programmiergrundlagen fehlt; das übrigens in jeder Programmiersprache exakt genau so!

    Lern erst einmal die Grundlagen.



  • Reyx schrieb:

    Dennoch sei darauf hingewiesen, dass dir da eine der fundamentalsten Programmiergrundlagen fehlt; das übrigens in jeder Programmiersprache exakt genau so!

    Lern erst einmal die Grundlagen.

    😕

    hier gehts nicht um das programmieren, sondern um die eigenheiten vom borland compiler beim compileren! wer lesen kann ist klar im vorteil!



  • int function() 
    { 
    // daten lesen 
    
    return zwischenwert; 
    
    reguläres zurückgeben 
    return daten;
    

    Wer glaubt, dass das Nichtfunktionieren dieses Quellcodes auf eine Eigenheit vom Borland C++ Compiler zurückzuführen sei, der hat ganz eindeutig etwas verpasst.



  • Reyx schrieb:

    Lern erst einmal die Grundlagen.

    das 'return zwischenwert;' hat er sicher nur zu debuggingzwecken drin.



  • Reyx schrieb:

    Wer glaubt, dass das Nichtfunktionieren dieses Quellcodes auf eine Eigenheit vom Borland C++ Compiler zurückzuführen sei, der hat ganz
    eindeutig etwas verpasst.

    das das nur pseudo-code ist, ist dir sicher entfallen!



  • Oh Mann. Hier gehts um ein Compiler Problem und das return mitten in der Funktion diente nur dem Debuggen indem ich mir einen Wert kurz ausgeben lasse und das darunter NUUUUULLLLLLLL interessiert.

    Für die Spiesser unter euch dann eben mit unnötigen Mehraufwand

    int function()
    {
    // daten lesen
    
    return zwischenwert;
    /*
    //reguläres zurückgeben
    return daten;
    */
    }
    

    Ich hoffe ihr könnt nun ruhig schlafen. Bitte lieber Moderator schliesse das Thema sonst Troll ich noch los 🙄



  • Oh Mann. Hier gehts um ein Compiler Problem und das return mitten in der Funktion diente nur dem Debuggen indem ich mir einen Wert kurz ausgeben lasse und das darunter NUUUUULLLLLLLL interessiert.

    Allerdings eine seltsame Methode des debuggens



  • Ich wollte kurz kontrollieren, ob beim einlesen einer Datei ein bestimmter Wert auch übereinstimmt. Was bitte ist daran seltsam?



  • Was bitte ist daran seltsam?

    Ich setzte einen Breakpoint und gehe kurz mit der Maus über die Variable oder habe das Fenster "lokale Variablen" im Debug-Desktop offen oder nehme diese in die Liste überwachter Ausdrücke auf....

    Extra das Programm "umschreiben" ist -> seltsam



  • Erlich gesagt habe ich vom "echten" Debuggen weniger Ahnung. Kennt wer eventuell ein gutes Tutorial 🙂 Aber mal kurz "return xyz;" einzugeben als einen Breakpoint in Schleifendurchlauf 1234 zu setzen stelle ich mir wesentlich schneller vor 😉



  • Hallo

    Grundlagen des Debuggers.

    bis bald
    akari



  • Hey Danke, das sauge ich mal auf 🙂


Log in to reply