C Auswertungsreihenfolge??



  • Thes-One schrieb:

    In welchem Debugger???
    schreibe unter Linux mit Kate!!

    ok, ein masochist? wenn nicht: du hast mein ganzes mitleid 😞
    naja, dann mach' hinter und vor jedem ausdruck eine printf-ausgabe, damit du siehst, wie weit das proggy gelaufen ist.
    🙂



  • Kannst du mir nicht einen guten Debugger nennen(Kostenlos wenn geht)??
    Hab auch Windoof!



  • Thes-One schrieb:

    Kannst du mir nicht einen guten Debugger nennen(Kostenlos wenn geht)??
    Hab auch Windoof!

    eigentlich sind alle nicht-GDB basierten debugger gut. z.b. der vom 'visual studio express edition' (ist kostenlos). allerdings kann visual studio kein C99 (falls dir das wichtig ist). ein C99-kompatibler compiler (mit IDE und debugger) ist 'pelles C' --> http://www.smorgasbordet.com/pellesc/

    btw, für's programmieren ist es unerlässlich, dass du linux u.ä. crap schnell hinter dir lässt.
    🙂



  • Thes-One schrieb:

    Ich prüfe doch vorher ob argc == 3 und somit gibt es das x+1!!
    Weil das Zeichen "-z" bei argc 2 gefunden wird!!

    Was für einen Wert hat denn x? Wenn das größer als 3 ist, knallt dir bereits der erste Teilausdruck um die Ohren.



  • helpful advisory schrieb:

    Thes-One schrieb:

    Kannst du mir nicht einen guten Debugger nennen(Kostenlos wenn geht)??
    Hab auch Windoof!

    eigentlich sind alle nicht-GDB basierten debugger gut. z.b. der vom 'visual studio express edition' (ist kostenlos). allerdings kann visual studio kein C99 (falls dir das wichtig ist). ein C99-kompatibler compiler (mit IDE und debugger) ist 'pelles C' --> http://www.smorgasbordet.com/pellesc/

    btw, für's programmieren ist es unerlässlich, dass du linux u.ä. crap schnell hinter dir lässt.
    🙂

    loool??
    warum sollte man linux hinter sich lassen beim programmieren???
    da gehts genauso (wenn nicht evtl noch besser)...
    haste dich schon mal an n windows gehockt, des frisch installiert war, quellcode eingegeben und das ganze mit make compiliert??
    da wird dir wohl auffallen, dass dir der compiler fehlt und make fehlt und ...
    unter linux ist des meist dabei (wobei komischerweise bei manchen distributionen der gcc nicht zur standardinstallation gehört), aber finde des als entwickel-plattform echt gut, abgesehen davon kann man mit cdt in eclipse auch echt gut entwickeln (oder man benutzt für kde kdevelop)... weiß echt nicht, was am programmieren unter linux schlecht is.
    haste schon mal gesehen, was ohne debugger unter win passiert, wenn du nen seg fault hast?? "Problembericht senden " ^^ unter linux steht auf der shell dann segmentation fault und es reißt nicht gleich die ganze cmd, wie unter win in die tiefe



  • Hinweis: Man muss nicht auf jede Trollerei eingehen.



  • Vorden schrieb:

    unter linux ist des meist dabei (wobei komischerweise bei manchen distributionen der gcc nicht zur standardinstallation gehört), aber finde des als entwickel-plattform echt gut, abgesehen davon kann man mit cdt in eclipse auch echt gut entwickeln (oder man benutzt für kde kdevelop)... weiß echt nicht, was am programmieren unter linux schlecht is.

    du hast zwar recht, es ist vieles 'out-of-the-box' gleich dabei (verschiedene sprachen, make, etc.) aber die benutzung gestaltet sich recht archaisch. viele linux-user (siehe der OP) coden wie leute in dem 70'er jahren, obwohl es sicher bessere lösungen gibt (nein, ich meine nicht kdedevelop und eclipse/cdt. ich kenne beide und sie können den programmiertools unter windoofs nicht das wasser reichen).
    🙂



  • ich weiß nicht, was du mit programmiertools unter windoof meinst, aber ich gehe mal von visual studio aus. dabei ist eigentlich hauptsächlich der editor beachtlich (wobei z.b. intellisense auch nicht das gelbe vom ei ist, zumindest mit c / c++) und vs hat z.b. auch einen guten debugger, dem natürlich der gdb nicht unbedingt toll das wasser reichen kann.
    aber ansonsten sehe ich wenig gründe, nicht auf linux/unix zu programmieren, weiß nicht, habe auch mit vi schon entwickelt (wenn auch im kleineren stil) aber es hat gelangt, ich brauch nicht unbedingt syntaxvervollständigung (wobei es auch ganz angenehm ist), aber dabei lernt mans wenigstens gescheit



  • Zum eigentlichen Thread zurück:
    Der Ausdruck ist auch logisch falsch, da du den 'Nicht'-Operator auf den gesamten letzten Ausdruck anwenden mußt (und außerdem noch die Bemerkung von CStoll):

    if (strcmp(argv[x],"-z")==0 && !(argc > x+1 && sscanf(argv[x+1],"%i", &Wert)==1)
    {
      ...
    }
    

    Edit:
    In Pascal gibt es das "Short Branching" übrigens nicht, d.h. es werden erst alle Teil-Ausdrücke ausgewertet und danach logisch verknüpft.



  • Th schrieb:

    In Pascal gibt es das "Short Branching" übrigens nicht, d.h. es werden erst alle Teil-Ausdrücke ausgewertet und danach logisch verknüpft.

    Eigentlich nennt man das "Short Circuit Evaluation". Und für die Auswertungsreihenfolge muss man sich einfach nur eine Tabelle mit den Operator Assoziativitäten/Präzedenzen anschauen.


Anmelden zum Antworten