Archiv verlassen und diese Seite im Standarddesign anzeigen : int argc, char* argv[] ??
localhost
12-01-2006, 17:53
Was bringt das eindlich das
int main(int argc, char* argv[])
wo ist das der unterschid zwichen
int main()
oder
main()
In C++ hat main immer einen return-Wert, also muss es int main() heißen.
Um Parameter übergeben zu können benötigt man in der Klammer int argc und char* argv[].
Ersteres beinhaltet die Anzahl der übergebenen Parameter, das Array char* argv[] hat die einzelnen Parameter.
int main(int argc, char* argv[])
Bedeutet: main ist eine Funktion, die die Parameter ... nimmt und int zurückgibt, so muss main eigentlich definiert sein, da sie so aufgerufen wird.
int main()
Bedeutet in C: main ist eine Funktion, dessen Parameter mich nicht interessieren.
In C++ bedeutet es hingegen: main ist eine Funktion, die keine Paramter nimmt
main()
Bedeutet in C: main ist eine Funktion mit (oder ohne) uninteressanten Parameter, die "int" zurückgibt (wenn dort nichts steht, nimmt C int an), also dasselbe wie 2)
In C++ ist das ungültige Syntax.
Also. Nummer 1) ist korrekt, mit Nummer 2) kommt man meistens durch, Nummer 3) ist ganz ganz schlechter und veralteter Programmierstil (es sei den, du möchtest beim Obfuscated C Contest mitmachen)
Lange Rede, kurzer Sinn: nimm 1)
ich hätte sonst zufälligerweise noch testprogramme zu argc, argv und getopt.
dan siehst du gleich was die dinger machen. interesse?
ich hätte sonst zufälligerweise noch testprogramme zu argc, argv und getopt.
dan siehst du gleich was die dinger machen. interesse?
ja ich habe Interesse, würdest du mal bitte posten vieln Dank
peschmae
16-01-2006, 11:51
Für Getopt reicht eigentlich das hier: http://www.gnu.org/software/libc/manual/html_node/Getopt.html
Allerdings finde ich das etwas merkwürdig zu programmieren. Insbesondere wenn man auch noch die langen Optionen verwendet - un ddas tut man ja meistens.
MfG Peschmä
Bevor du durch getopt verwirrt wirst, wenn du dein Programm mit
meintollesprogramm parameter1 parameter2 parameter3 aufrufst, enthält:
argc = 4 (Anzahl der Einträge in argv, 1. ist immer Programmname, + 3 Parameter)
argv[0] = "meintollesporgramm"
argv[1] = "parameter1"
argv[2] = "parameter2"
argv[3] = "parameter3"
getopt vereinfacht es sehr, damit umzugehen, denn z.B.
meinprogramm -abc -o parameterfuero --log-level 65 --foo=bar
würdest du als
"meinprogramm", "-abc", "-o", "parameterfuero", "--log-level" "65","--foo=bar" bekommen, was du aber haben willst, ist
"a", "b", "c", ("o","parameterfuero"), ("log-level",65), ("foo", "bar")
Und das macht getopt für dich.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.