C Aufgabe zum Verständnis von Operatoren

@1668mib:
Gibt mMn keinen (außer, dass kürzer :D); der Compiler wird automatisch int als Rückgabewert vorsehen und dann implizit einen zurückgeben (wie sonst auch, wenn kein Rückgabewert explizit angegeben wird).
Argumente werden bei der Variante auch keine entgegengenommen.
 
Matt Groening schrieb:
Bei solchen simplen Programmen haben wir damals immer void main(void) geschrieben..

Dann habt ihr's damals immer falsch gemacht. Der Standard (sowohl C als auch C++) kennt genau 2 gültige Signaturen für die main-Funktion:

  1. int main();
  2. int main( int argc, char* argv[] );

Wobei int main(void); das gleiche ist wie int main();. Die längere Schreibweise existiert nur, weil in C wohl vor laaanger langer Zeit ;) eine Funktionsdeklaration ohne jegliche Parameterangabe bedeutete "Diese Funktion kann mit jeder beliebigen Art und Anzahl von Argumenten beglückt werden." Um klarzustellen, daß eine Funktion überhaupt keine Argumente erwartet, mußte man also (void) als Parameterliste angeben.

Heute ist das natürlich längst nicht mehr so, und die (void)-Variante wird nur noch aus irgend welchen wahnwitzigen Bestrebungen für Rückwärtskompatibilität verwendet ... was ich immer besonders witzig finde, wenn ich (void) in C++-Programmen sehe ... welche sobald ich einmal ein template oder eine Klasse definiere, ist's mit der guten Rückwärtskompatibilität ohnehin Essig.


Wer meint, daß ich Stuss erzähle ... bitte korregieren.
 
@antred:
Neben den beiden vorgeschriebenen Formen sind aber auch implementationsspezifische erlaubt. Portabel ist das natürlich nicht.

C++ erlaubt bei diesen Formen nur int, C hingegen tatsächlich auch void (es sei denn, es wurde im letzten Standard geändert).
 
Zurück
Oben