Neueste Versionen von gcc und clam unter Fedora Linux kompilieren das folgende Programm ohne Fehler:
%Vor%Dies ist mit gcc 4.7.2 und clang 3.0. Auf meinem Mac beschweren sich gcc 4.2.1 und Apple clang 4.1 dagegen wie erwartet über fehlende Klammern in der Zeile "if islower (c)". In allen Fällen habe ich die Compiler mit "-std = c99" ausgeführt.
Ist das ein Fehler in den letzten Versionen von gcc und clang, eine Eigenart in der C-Sprache oder etwas anderes? Der C99-Standard ( Ссылка S. 133) scheint runde Klammern zu enthalten wenn Ausdrücke in allen Fällen.
Ich habe gerade die ctype.h
-Datei in /usr/include/ctype.h
durchgesehen und die folgende Definition für islower
gefunden:
Gehe zur Definition für __isctype()
Ich finde:
So wird Ihr Code if islower(c)
zu:
Bei der Abrundung wurde die Klammer während der Erweiterung hinzugefügt.