Komischer Fehler.. oder ich seh ihn nich!?



  • BorisDieKlinge schrieb:

    Code A und B sind aquivalent, doch bei A wird ASSERT Aufgerufen

    Bei mir nicht. Ist das der ganze Code? Oder hast du vielleicht irgendwo noch irgendwelche anderen Makros?

    Warum lässt du das Gewurschtel mit den Makros nicht endlich? Noch nicht genug Probleme damit gehabt?



  • ok MFK ... dann pack ich das in ne Funktion.. aber trozdem wo liegt der fehler?

    daran:

    alt:

    COM_TOL(A,B) (fabs(A - B) < TOLERANZ)
    

    neu:

    COM_TOL(A,B) (fabs(A - B)) < TOLERANZ
    


  • BorisDieKlinge schrieb:

    aber trozdem wo liegt der fehler?

    In dem gezeigten Code ist kein Fehler (wenn man von der fehlenden Klammer absieht). Wie gesagt, bei mir schlägt die Assertion nicht fehl.



  • hmm.. super.. das ist also ne Anomalie von makros, das sie ab und zu noch funktionieren wie sie sollen?



  • BorisDieKlinge schrieb:

    hmm.. super.. das ist also ne Anomalie von makros, das sie ab und zu noch funktionieren wie sie sollen?

    Nein.

    Makros erschweren "nur" die Fehlersuche. Meine Frage, ob das der ganze Code ist, hast du leider nicht beantwortet. Aber dieses Programm läuft ohne Assertion durch:

    #include <cassert>
    #include <cmath>
    using namespace std;
    
    #define        TOLERANZ    0.01
    #define        COM_TOL(A,B) (fabs(A - B) < TOLERANZ)  
    
    int main()
    {
    	assert(COM_TOL(1.000000, 0.9999999));  
    }
    

    Wenn es das bei dir nicht tut, solltest du dir vielleicht einen anderen Compiler zulegen.



  • hab den fehler:

    #define        COM_TOL(A,B) (fabs(A - (B)) < TOLERANZ)
    

    muss B klammernm weil sich B aus mehre double werten summiert, was ich nich berücksihtig habe

    fabs(A-b1+b2+b3) und es muss natürlich geklammert sein..

    aber danke.. ich mach trozdem in ne funktion @ MFK 😉



  • BorisDieKlinge schrieb:

    aber danke.. ich mach trozdem in ne funktion @ MFK 😉

    👍 😃



  • BorisDieKlinge schrieb:

    hmm.. super.. das ist also ne Anomalie von makros, das sie ab und zu noch funktionieren wie sie sollen?

    Über tausend Beiträge und immer noch nicht den Spruch "Macros are evil!" gehört? 😡



  • ich muss erst par mal auf die schnautze fliegen bis ich lerne;) hehe



  • BorisDieKlinge schrieb:

    ich muss erst par mal auf die schnautze fliegen bis ich lerne;) hehe

    Es gibt auch Leute, die lernen aus den geschwollenen Backen Anderer.

    Musst selbst entscheiden, wer/was schlauer ist. 😉

    Gruß,

    Simon2.


Anmelden zum Antworten