opticus Skrevet 21. mars 2005 Del Skrevet 21. mars 2005 jeg sitter og grubler, føler jeg grubler mye om dagen. Har sittet og grublet på printf funksjonen, hvordan kan man definere et ukjent antall argumenter til en funksjon? ...) hva skjer når man skriver ...) til slutt? hvor blir det av dette? er det mulig å hente dette frem på en eller annen måte? Lenke til kommentar
opticus Skrevet 21. mars 2005 Forfatter Del Skrevet 21. mars 2005 eller stdarg om du vil Lenke til kommentar
GeirGrusom Skrevet 25. mars 2005 Del Skrevet 25. mars 2005 når stdcall rutiner lagrer argumentene, legges dette i stacken med push instruksjonen, som hentes av prosedyren med pop instruksjonen, i motsetning til fastcall rutiner, som bruker registrene. Jeg er litt usikker på hvordan det gjøres, for jeg har ikke sjekket, men jeg kan forestille meg at den bare legger til et tall foran som sier hvor mange argumenter som følger. Lenke til kommentar
A_N_K Skrevet 25. mars 2005 Del Skrevet 25. mars 2005 Jeg er litt usikker på hvordan det gjøres, for jeg har ikke sjekket, men jeg kan forestille meg at den bare legger til et tall foran som sier hvor mange argumenter som følger. Dette tror jeg er galt. Hvis man spesifiserer flere argumenter i format-strengen til printf enn det som følger går det sjelden bra :_) Lenke til kommentar
Steinbitglis Skrevet 28. mars 2005 Del Skrevet 28. mars 2005 Er ikke helt sikker på dette her men jeg tror det skal se slik ut: void func(int ...); void func (int severity ...) { /*...*/ } Å få tak i argumentene inni funksjonen må gjøres på en spesiell måte, men du bør lese litt om det før du prøver deg. Dessuten betyr severity et ukjent anntall char*, jeg vet ikke om det finnes andre "kodeord" som gjelder for andre argumenttyper Funksjonen tar en int fulgt av x anntall char* Lenke til kommentar
☀ ❄ Skrevet 28. mars 2005 Del Skrevet 28. mars 2005 void func (int severity ...){ /*...*/ } [...] Dessuten betyr severity et ukjent anntall char*, jeg vet ikke om det finnes andre "kodeord" som gjelder for andre argumenttyper Funksjonen tar en int fulgt av x anntall char* Dette er ikke helt riktig. Når du bruker ... i en argumentliste, betyr det at det kan (men det må ikke) være flere argumenter, hvis antall og type er ukjent. void func(int severity ...); Denne funksjonen tar et heltall som argument. Du kan dessuten spesifisere et ubestemt antall ytterligere argumenter. De øvrige argumentene kan ha forskjellige typer, og de kan ha akkurat de typene brukeren av funksjonen ønsker. severity er ikke et nøkkelord i C eller C++, og betyr ikke noe som helst. severity er ganske enkelt identifikatoren til heltallet. (Ellipsene (...) bryter for øvrig med typesystemet, og bør unngås i C++) Lenke til kommentar
opticus Skrevet 30. mars 2005 Forfatter Del Skrevet 30. mars 2005 void fucition(int bla, ...) { dette blir riktig.. Lenke til kommentar
☀ ❄ Skrevet 30. mars 2005 Del Skrevet 30. mars 2005 void function(int bla ...) og void function(int bla, ...) betyr akkurat det samme. Lenke til kommentar
Steinbitglis Skrevet 1. april 2005 Del Skrevet 1. april 2005 takk, misforstod visst det der litt... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå