Am Die, 2003-02-11 um 08.23 schrieb Philipp Thomas:
Ralf Corsepius
[11 Feb 2003 02:23:42 +0100]: implizite int's als schlampig zu betrachten ist Pedanterie.
Sorry, aber implizite ints waren IMNSHO schon vor 13 Jahren, als ANSI C frisch war und ich C lernte, Vor 13 Jahren gab es praktisch keine ANSI Compiler ;)
Borland/Turbo-C gaben damals vor es zu sein, waren es aber nicht wirklich; ebenso wenig wie DEC's VMS-ANSI-C-Compiler, der Sun-C war ein reiner KnR-Compiler. Der gcc steckte noch ziemlich in den Kinderschuhen und wurde nur wenig ernstgenommen ... Aus dieser Zeit stammt auch die Masse des X11-Codes, der deshalb auch mit ANSI/KNR-Kompatibilitäts-Macros gespickt ist, ebenso wie die gcc __P()-Macros
schlampig, da Ausdruck der Faulheit des Programmierers. In neuem, heute zu schreibendem Code, ja.
Ja, sie waren noch zulässig, aber das muss nicht viel heissen. Es ist dann von Belang, wenn es sich um alten Code handelt.
IMNSHO, ist Suche nach impliziten int-Returns sinnentleerter Aktionismus (Man behebt dadurch keine Fehler), es sei denn, man ist der Maintainer/Entwickler eines Projektes und will seinen Quellcode auf neueste Standards anpassen. Das gleiche gilt für implizite Returns ( int foo() { function(); }. Anders schaut es mit derartigen, in KnR syntaktisch korrekten, aber nur maschinenabhängigen Konstrukten aus: int foo( int*) int foo( a ) short* a; { } Diese hochgefährliche Konstruktion wird von -W-Flags in gcc nicht detektiert, ist in KnR-C und älterem "möchtegern" ANSI-C-Code aber nicht selten anzutreffen. Ralf