[Erledigt] Unterschiedliche main()'s

Eclipse, Visual-Studio und Dev C++ verwenden unterschiedliche main()-Methoden, bzw Schreibweisen.

Bei Eclipse einfach : int main () bzw int main(void),
bei VS : int _tmain(int argc, _TCHAR* argv[])
bei Dev C++ : int main(int argc, char *argv[]).

Warum gibt es so viele unterschiedliche Schreibweisen? Kann mich jemand bitte aufklären?

Danke :slight_smile:

Die gängigste Schreibweise ist: int main(){}

Die C-„kompatible“ oder sagen wir so schreiben es eingefleischte C Programmierer: int main(void){} (es gibt in C aber auch noch diese Schreibweise: void main(void){})

Will man nun die Parameter/Argumente des Programmaufrufes verwenden schreibt man es so: main(int argc, char *argv[]){} oder auch main(int argc, char **argv){}

Da M$ ja immer der Meinung ist ein eigenes Süppchen kochen zu müssen schreiben diese es eben so: int _tmain(int argc, _TCHAR *argv[]){}

Und um Dich jetzt noch gänzlich zu verwirren gibt es noch folgende Schreibweise: int main(int argc, char **argv, char **env){} Damit bekommt man noch die Systemvariablen/Umgebungsvariablen geliefert, es kann aber sein das dies nur unter Linux funktioniert zumindestens kenn ich es nur von da und hab es unter Win noch nicht probiert.

Übrigens die Angabe *argv[] und **argv haben keine funkionalen Unterschiede sondern sind unterschiedliche schreibweißen für einen „char double pointer“. Da man in C/C++ in 2 Wegen auf einen Pointer zugreifen kann, einmal argv[0] und *argv.

Gut Schuß
VuuRWerK :wink:

die tchars haben (fast) nichts mit MS zu tun, die sind für Unicodes und so