Gå til innhold

main(), void main(), int main()?


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

Kan hende jeg tar feil, men jeg tror at man bruker void om man ikke ønsker noe output fra en funksjon, mens man bruker int om man ønsker å få output som integer.

Skrevet

I C++ og nyere standarder av C (tror jeg -- jeg er ingen C-utvikler, så rett meg hvis det er galt) er alt annet enn int main() (med evt. argumenter) galt.

 

Som alfern skriver, void returtype betyr at ingenting returneres, mens int betyr at funksjonen returnerer et heltall. I C betyr main() det samme som int main().

Skrevet

Takker for svar

 

For har nemlig sett programmer som begynner med de tre og lurte på om hva slags funksjon de hadde, siden det bare var lov til å ha en main i et program

Skrevet

i "gamle dager" (Borland 4.5 og slikt) brukte man void main(). Da void main() var den eneste void-funksjon som faktisk returnerte en int :p

 

Iflg. standarden skal det være int main(). du må definere return-typen på en funksjon, så kun main() vil ikke fungere uansett.

Skrevet
lstor@mputt:~$ gcc -o voidmain voidmain.c -std=c99

voidmain.c: In function `main':

voidmain.c:1: warning: return type of `main' is not `int'

lstor@mputt:~$ g++ -o voidmain voidmain.c

voidmain.c:1: error: `main' must return `int'

 

I C99 ser det altså ut til å være gyldig, men ikke spesielt godt mottatt. I C++ er og blir det strengt forbudt.

Skrevet
void main er fullt lovlig, bare ikke så kjekt hvis man skal sjekke returverdier ved debugging.

Det er en uting å bruke void main(). Veldig mange kompilatorer vil heller ikke godta det.

Skrevet

Det skal brukes int main(int argc, char *argv[])

 

retur verdien fra main brukes av dos i batch filer. 0=OK, alt annet betyr at programet feilet.

 

Torstein

Skrevet
Det skal brukes int main(int argc, char *argv[])

La meg ta et 'oppfølgingsspørsmål'.

 

Det er også mulig å bruke:

int main(int argc, char *argv[], char *env[])

 

Der env blir en liste med environment variabler. I hvertfall på unix/linux. Er dette en del av standarden også?

Skrevet

Hmm. Det var nytt (for meg ihvertfall :p)

#include <iostream>
using namespace std;
int main(int argc, char* argv[], char* argv[])
{
return 0;
}

men, når jeg kompilerer med GCC og bruker ansi paramteret:

g++ -ansi test.cpp -o test 

Så kompilerer koden. Kompilerte riktignok på Linux men..

Skrevet

Jeg har benyttet meg av dette på Solaris også, i et cgi-script som bl.a dumper environment variablene til html. Hvor jeg kom over dette i utgangspunktet husker jeg ikke lenger.

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...