wie kann man solche optimierungen ausschalten?



  • eigentlich sollte man vor so ein rätselchen gar nicht schreiben, daß es eines ist, aber hier muss ich es leider tun.

    hi!
    ich baue gerade einen homepage-macher. in php klappte der schon fast. aber jetzt will ich ihn in c++ machen, weil das einfach besser ist, sagen alle.
    eigentlich wollte ich ja in meinem homepage-macher beim machen eine liste der seiten anzeigen, die er gerade macht. jeweils mit dem level(root ist 9 und tiefere seiten haben kleinere zahlen) davor. also das hier:

    9         www.volkard.de 
    8         News 
    8         C++ 
    7         Compiler und IDEs 
    6         fuer Windows 
    5         MinGW Studio 
    7         Tutorial 
    6         Einleitung 
    6         Das erste Programm 
    5         Das erste Programm mit dem MinGW Studio 
    6         Hello, world! 
    6         Fertig 
    8         Software 
    7         Clientsided Syntax-Highligter 
    8         Links
    

    die methode dafür ist auch ganz eigentlich einfach.

    void save(){
            string msg=level+"         "+title+"\n";
            cout<<msg;
            ...
        }
    

    aber die gibt was viel hübscheres aus.

    www.volkard.de 
     News 
     C++ 
      Compiler und IDEs 
       fuer Windows 
        MinGW Studio 
      Tutorial 
       Einleitung 
       Das erste Programm 
        Das erste Programm mit dem MinGW Studio 
       Hello, world! 
       Fertig 
     Software 
      Clientsided Syntax-Highligter 
     Links
    

    darf ein c++-compiler das einfach optimieren, daß er nicht das ausgibt, was ich geschrieben habe, sondern das, was ich eigentlich haben will aber noch nicht programmieren kann? und wie kann man das abschalten. das bringt mir ja nix zum lernen, wenn er selber alles macht.

    ich verwende das MinGW Studio für windows.



  • Da wird nichts optimiert, sondern es wird Pointerarithmetik angewandt. Dieses

    "            "
    

    ist ein const char *, zu dem wird der int level dazuaddiert. Dadurch ergibt sich die Einrückung.



  • Man müsste wissen, ob title ein String ist und ob + rechts- oder linksassoziativ ist.
    Je nachdem wird nämlich der ganze Ausdruck zu einem String, sodass bei + "..." keine Zeigerarithmetik stattfindet.

    MfG Eisflamme



  • title ist sicher ein string, das ist aber egal, weil + linksassoziativ ist.



  • Hi,

    ahso, dann ist klar.

    MfG Eisflamme



  • ist level ein integer ?

    um das zu erreichen, was du oben hast, also keine einrückung, müsste man level in ein "char" umwandeln?

    also

    static_cast<char> (level+48) statt einafch nur level schreiben

    wäre meine spontane idee

    cu



  • ich habe die Frage nicht verstanden 😞

    Das einzige was ich sehe ist ne geile Anspielung wie 'logisch' C++ doch ist 😉



  • volkard schrieb:

    und wie kann man das abschalten. ...
    ich verwende das MinGW Studio für windows.

    Oh mann, Du hast ja voll kein Plan von C++. Benutz mal google und lies mal ein Buch! :p 😃

    Cooles Teil! Hab auch ne Weile gebraucht. 😉


Anmelden zum Antworten