Dreieckstausch



  • @Volkhard schrieb:

    versuch du mal folgendes, nach deinem Schema

    Mein Schema? Wusste gar nicht, dass ich eins genannt hatte.

    @Volkhard schrieb:

    int a = 5;
    string s = "hallo welt";
    

    Das ist Quatsch, da du hier zwei Werte unterschiedlichen Typs hast. Wie soll denn nun eine Umwandlung durchgeführt werden? Bitweise? Lexikalisch?

    @Volkhard schrieb:

    Der liebe Volkhard, hat keine swap fkt angegeben, von der ihr immer so sprecht! sondern einfach mit hilfe einer tmp variable den wert von a zwischengespeichert.

    Und das ist für dich kein swap? Was soll denn daran falsch sein?
    Schon mal was von Code Reduktion gehört? Wie ich schon sagte, in C++ kann man sowas wunderbar als Template implementieren. Und dann ist deine Funktion unbrauchbar, die mit der tmp Variable kann jedoch relativ einfach angepasst werden.
    Und warum stört dich die tmp Variable? Wie ich schon sagte, funktioniert deine Funktion nur mit primitiven Typen (wozu ja int gehört) erwartungsgemäss. Und solche Werte können auf gängigen x86 Systemen auch problemlos in Registern gehalten werden. Du wirst deshalb mit deiner Version nicht zwangsläufig Speicher- bzw. Geschwindigkeitsvorteile haben.

    net schrieb:

    funzt nicht richtig. sieht nur mit 'unsigned char' gut aus

    Wieso? Funktioniert doch. Hast wahrscheinlich einfach mal die Warnungen deines Compilers ignoriert. Da nicht selten char als signed definiert wird und der Wertebereich von -128 bis 127 geht, passt 200 nunmal nicht rein und der Wert wird als -56 (200 - 256) genommen. Das dürftest du dann auch als Ausgabe haben.

    D@niel $chumann schrieb:

    aber 200 passt rein? 😉

    Wenn char unsigned ist, dann schon. 🙂


Anmelden zum Antworten