Bernhard Walle
On Wed, 26 Feb 2003 at 23:51 (+0100), Philipp Thomas wrote:
Für C kann ich nur hoffen, dass ein zukünftiger Standard dies übernimmt, so wie C einst die Prototypen von C++ übernahm.
ACK. Was meinst Du eigentlich mit den Prototypen?
Funktionsdeklarationen. Eben das seinerzeit ANSI die heute bekannten Prototypen einführte, sprich das du nicht nur, wie unter K&R, den Rückgabewert deklarierst, etwa so: double blub(); Sondern eben auch die Typen der Argumente: double blub(int count, double bubble); Und eben in der Definition nicht double blub(count, bubble) double bubble; { } sondern double blub(int count, double bubble) { }
Warum implementieren die gcc'ler eigentlich nicht das mit dem Weglassen auch fuer C. Ich meine, das __attribute__((unused)) ist ja auch inkompatibel, dann koennte man wenigstens etwas sinnvolles inkompatibles (immerhin viel kuerzer) machen ...
Das wäre erstens nicht mehr Standardkonform, denn das Weglassen des Namens ist laut ISO C ein eindeutiger Fehler. Also dürfte dieses Feature nur per explizitem Schalter aktiviert werden. Zweitens wäre dafür ein nicht trivialer Eingriff in den Parser nötig, während __attribute__ längst implementiert ist. Und drittens sind die Bemühungen derzeit eher, GCC-Erweiterungen zu *reduzieren*, da in der Vergangenheit zuviele unausgegorene Erweiterungen eingeführt wurden, die dann später bei der Weiterentwicklung des GCC sehr viel Kopfschmerzen bereitet haben. Philipp -- Philipp Thomas Arbeit: pthomas@suse.de Entwicklung, SuSE Linux AG Privat: pth@t-link.de