Avatar billede faramir Nybegynder
14. december 2004 - 12:50 Der er 12 kommentarer og
1 løsning

En forklaring på "argc" og "argv"

Hej programmører!

Jeg er selv en nystartet programmør der er vild efter at komme ordenligt igang. Tit når jeg læser kodeeksempler, tutorials eller lign. så støder jeg tit på denne kodestump:

int main(int argc, char ** argv)

Kan nogen forklare mig, meget forståeligt, hvad argc og argv helt præcist gør godt for? Kan programmet ikke fungere uden? Skal de absolut hedde argc og argv?

Glæder mig til jeres svar.
Avatar billede arne_v Ekspert
14. december 2004 - 12:53 #1
De angiver programmets argumenter.

foobar.exe abc def

vil give:

argc=3
argv[0] = "foobar.exe"
argv[1] = "aaa"
argv[2] = "bbb"
Avatar billede arne_v Ekspert
14. december 2004 - 12:54 #2
navnene er som ved alle andre funktioner ligegyldige - der er bare tradition for argc og argv

hvis du ikke skal bruge kommando linie parameterne så kan du bruge

int main()
Avatar billede arne_v Ekspert
14. december 2004 - 12:55 #3
hm - jeg skiftede vist mening midt første kommentar

foobar.exe abc def

vil give:

argc=3
argv[0] = "foobar.exe"
argv[1] = "abc"
argv[2] = "def"

foobar.exe aaa bbb

vil give:

argc=3
argv[0] = "foobar.exe"
argv[1] = "aaa"
argv[2] = "bbb"
Avatar billede faramir Nybegynder
14. december 2004 - 14:00 #4
Vil det sige at man kun bruger dem hvis brugeren skal have mulighed for at skrive kommandoer ala dos?
Avatar billede arne_v Ekspert
14. december 2004 - 14:06 #5
Ja.

(omend argumenterne jo ikke behøver at indtastes manuelt men kan ligge i bat
filer eller i shortcuts)
Avatar billede faramir Nybegynder
14. december 2004 - 15:23 #6
Kan et argument så henvise til en klasse istedet? Har set at mange bruger argc eller argv i if eller for-sætninger... Ville det ikke også kunne lade sig gøre med en almindelig variabel eller?
Avatar billede arne_v Ekspert
14. december 2004 - 15:26 #7
typerne af argc og argv ligger fast

men du kan naturligvis oprette objekter ud fra dem
Avatar billede arne_v Ekspert
14. december 2004 - 15:29 #8
ok
Avatar billede faramir Nybegynder
14. december 2004 - 15:50 #9
Øhh den forstod jeg ikke lige...
Avatar billede arne_v Ekspert
14. december 2004 - 15:53 #10
argc skal væte int
argv skal være et array af char pointere

men du kan putte data ind i din egen klasse/objekt
Avatar billede faramir Nybegynder
14. december 2004 - 16:01 #11
Ok den fik jeg måske nok fat i... Jeg venter lige lidt med at lukke.
Avatar billede arne_v Ekspert
01. januar 2005 - 13:26 #12
er lidt ved at være gået ?
Avatar billede faramir Nybegynder
07. januar 2005 - 13:42 #13
Undskyld forsinkelsen, jeg har haft den liggende lidt i baghovedet og nu forstår jeg hvad der menes, har bare ikke helt fundet ud af hvornår de bruges, fordelene og i den dur. Men det er ok, tak for hjælpen! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester