Komische main int main(argc, argv, envp)int argc; char **argv, **envp;
-
Hi,
ich habe mir den Quellcode zu Ruby runtergeladen und dort steht die main-Funktion so:
int main(argc, argv, envp) int argc; char **argv, **envp; { ..... }
Was hat es für einen Sinn das so zu schreiben und welcher Compiler übersetzt das überhaupt?
mfg,
hahahahaha
-
1. Der Sinn ist vermutlich dass es zu der Zeit als das erdacht wurde noch keine ANSI-Syntax gab (..und ich dachte Ruby wäre relativ neu).
2. Eigentlich übersetzt das jeder C-Compiler, der noch (und das sollten alle sein) K&R-Syntax erkennt.EDIT:
3. Womit diese Frage eigentlich im falschen Forum steht, denn C++-Compiler übersetzen das mit Sicherheit nicht
-
Ja stimmt mit einem C-Compiler kann man es übersetzen
War das den früher vor dem ANSI standart so das man alle
Funktionen so schrieb?
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
hahahahaha schrieb:
War das den früher vor dem ANSI stan**** so das man alle
Funktionen so schrieb?Ja, das ist die sog. K&R-Syntax - damals hat man es noch nicht so genau genommen mit der Typsicherheit
(und die Schreibweise
int func() int arg1,arg2;{...}
sieht zwar ähnlich aus wieint func(int arg1,int arg2){...}
, aber da kann der Compiler nicht überprüfen, ob die richtigen Argumente übergeben werden)