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
Operatoren und Prioriät
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Operatoren und Prioriät
Hallo und Willkommen im Forum
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"
Über den Kontext. Hast du z.B eine Zuweisung:Wie kann der Compiler das unterscheiden?
Code: Alles auswählen
a = -10;
Hättest du den folgenden Fall:
Code: Alles auswählen
a = b + c;
Komplizierter ist es bei solchen Konstrukten:
Code: Alles auswählen
a = b * -c;
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"
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Operatoren und Prioriät
Ok, vielen lieben Dank für die Antwort!
Habe davor noch nie von 'undefined behaviour' gehört
Gruß IVIagier
Habe davor noch nie von 'undefined behaviour' gehört
Gruß IVIagier