Jump to content
Sign in to follow this  
jingt

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

Recommended Posts

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.

Share this post


Link to post

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().

Share this post


Link to post

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

Share this post


Link to post

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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post

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

Share this post


Link to post
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å?

Share this post


Link to post

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..

Share this post


Link to post

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.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...