-
General
Ich weiß nicht, wie du darauf kommst, ich würde in dem Post die Funktionsweise von 'a < b < c' erklären...? Der erste Teil war zum Teil an dich gerichtet (bezüglich "Im Übrigen kennt C soweit ich weiß, sehr wohl bool, wenn auch erst seit ANSI C99") und zum Teil an Ineluki, der zuvor annahm, dass der Compiler mit booleans arbeiten würde. Tut er nicht, wie man dem Standard entnehmen kann. In C sind Rückgabetypen von Vergleichs- und Logikoperatoren keine bools und keine _Bools, sondern ints (!= bool/_Bool). Dieser Fakt wiederum erschwert die semantische Verifikation, ob einer der Operanden vom Typ bool/_Bool ist, oder nicht, und damit ist es auch nicht so trivial (entgegen Inelukis Annahme) eine Warnung oder Fehler zu generieren, wenn implizit von einem bool/_Bool konvertiert wird, da eben keine bools/_Bools in den Ausdrücken entstehen.
Der letzte Teil sollte nur noch zeigen, dass 'a < b < c' sogar im Standard erwähnt wird, da offenbar ausreichend beanstandet wurde, und dennoch gibt es bis heute keine generierte Warnung auf der Seite der Implementation, folglich als nicht kritisch genug erachtet. Und genau das ist auch meine Ansicht, siehe mein erster Kommentar diesbezüglich. Ob 'a < b < c' im mathematischen Sinn gemeint war, kann man sofort aus dem Kontext erkennen und wie gesagt, meiner Meinung nach würde so ein Fehler einem erfahrenen Programmierer nicht unterkommen. Spätestens sobald der obligatorische Test fehlschlägt, sollte man beim Überfliegen diesen Fehler entdecken.
Ich hoffe, ich habe es diesmal besser ausgedrückt. Eure Ansichten sind mir nicht egal, und ich versuche auch nicht euch meine Meinung aufzubinden (falls dies den Anschein erwecken sollte, ich bin in Diskussionen oft ehrgeizig), ich sehe es nur anders als ihr und habe versucht meinen Standpunkt wiederzugeben.
Edit: Zugegeben, in der syntaktischen Analyse könnte eine Warnung viel einfacher generiert werden, da es bei 'a < b < c' in erster Linie nicht um die Semantik geht, sondern dass diese Syntax nicht mathematisch korrekt aufgelöst wird.
Geändert von Kyuu (03.09.2009 um 16:48 Uhr)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln