Am Die, 2003-02-11 um 16.43 schrieb David Haller:
Hallo,
On Tue, 11 Feb 2003, Ralf Corsepius wrote:
Am Die, 2003-02-11 um 04.35 schrieb David Haller:
On Tue, 11 Feb 2003, Ralf Corsepius wrote:
Am Die, 2003-02-11 um 00.29 schrieb David Haller: [..]
Ok. Ich bleibe also dabei, alles, das nicht explizit den richtigen return-type angibt, als "schlampig" zu betrachten :) Nein, die Sprache hat sich geändert - implizite int's als schlampig zu betrachten ist Pedanterie. [..] Nebenbei bemerkt: Wann ist's dir lieber, dass es "knallt"? Schon beim Kompilieren oder erst zu Laufzeit? Es knallt eben nicht. Implizite int-Return-Decls sind syntaktisch korrektes C mit genau definiertem Verhalten und deshalb weder unsicher noch fehlerhaft.
Jaaa, vorausgesetzt, dass die Funktion einen int zurueckgibt! Das tun Funktionen ohne Return-Typ Deklaration _immer_.
Darum geht's mir doch.
blubb() { machwas(); return; } Ob das jetzt syntaktisch korrekt ist, bin ich mir nicht sicher.
blubb() { machwas(); } ist es jedenfalls und wird implizit zu int blubb( ) { return machwas(); }
So, das ist implizit ein 'int blubb()'. Schoen. Denn kann man also
int main(void) { return blubb(); }
schreiben? Ja.
Wie gesagt: ich hab ein Programm versucht zu kompilieren, in dem mal von einem impliziten void und mal von nem int ausgegangen wurde. Das ist natuerlich Mist. Ja, implizite voids gibt es nicht.
Ralf