Seite 1 von 1
Operatoren und Prioriät
Verfasst: Sa Jan 21, 2017 9:18 pm
von IVIagier
Hallo Freunde,
ich habe eine Frage zu der Priorität der Operatoren + und -.
Wie ich in dem Thema lesen konnte haben die Vorzeichen + und - eine Priorität von 16.
Wenn man allerdings eine Addition/Subtraktion als Zeichen verwendet haben + und - eine Prio von 13.
Wie kann der Compiler das unterscheiden?
Gruß IVIagier
Re: Operatoren und Prioriät
Verfasst: So Jan 22, 2017 12:19 pm
von cloidnerux
Hallo und Willkommen im Forum
Wie kann der Compiler das unterscheiden?
Über den Kontext. Hast du z.B eine Zuweisung:
Dann muss das "-" klar ein Vorzeichen sein.
Hättest du den folgenden Fall:
Dann muss das "+" klar eine Addition sein, weil davor und dahinter eine Variable steht.
Komplizierter ist es bei solchen Konstrukten:
Ist es ein Syntax Error oder doch ein Vorzeichen und eine Multiplikation? Der Compiler wird sich meistens für das letztere Entscheiden.
Wichtig zum Verständnis ist aber, dass es viele mehr- oder uneindeutige Konstrukte in C/C++ gibt. Daher sollte man im Zweifelsfall immer Klammern setzten, um wirklich sicher zu gehen, dass das was du programmierst auch das ist, was am ende heraus kommt. Mehr dazu hier:
https://en.wikipedia.org/wiki/Undefined_behavior
oder unter dem Stichwort "C undefined behaviour"
Re: Operatoren und Prioriät
Verfasst: So Jan 22, 2017 2:48 pm
von IVIagier
Ok, vielen lieben Dank für die Antwort!
Habe davor noch nie von 'undefined behaviour' gehört
Gruß IVIagier