[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]


    Search the Q&A Archives


There are so many forms of main() function. Like int...

<< Back to: comp.lang.c Answers (Abridged) to Frequently Asked Questions (FAQ)

Question by Sanjay
Submitted on 12/23/2003
Related FAQ: comp.lang.c Answers (Abridged) to Frequently Asked Questions (FAQ)
Rating: Rate this question: Vote
There are so many forms of main() function.
Like int main(), int main(int argc, char*argv[]), void main(). All of them work fine. My question is "is the main() function overloaded"? Or else how can we use the function with same name and different signatures?


Answer by naidu_trk
Submitted on 12/29/2003
Rating: Not yet rated Rate this answer: Vote
main is a special function and the c compiler takes care of it no matter how  u declare it .

 

Answer by gmcarthur
Submitted on 12/31/2003
Rating:  Rate this answer: Vote
Technically speaking, main is defined to have a number of parameters.  The first is the number of arguments passed to it (int argc), the second an array of string with the arguments (char **argv or char *argv[], among other variations), the next (and last as far as I know) is the environment space (char *envp).

However, C compilers are set up to allow the programmer to have these parameters defined, or not.  I believe that the parameters are there at run time (in the run-time stack), but if you do not declare them in the prototype, you don't see them.

So, main is not overloaded.  The declaration just changes what values you can see from the caller to main.


 

Your answer will be published for anyone to see and rate.  Your answer will not be displayed immediately.  If you'd like to get expert points and benefit from positive ratings, please create a new account or login into an existing account below.


Your name or nickname:
If you'd like to create a new account or access your existing account, put in your password here:
Your answer:

FAQS.ORG reserves the right to edit your answer as to improve its clarity.  By submitting your answer you authorize FAQS.ORG to publish your answer on the WWW without any restrictions. You agree to hold harmless and indemnify FAQS.ORG against any claims, costs, or damages resulting from publishing your answer.

 

FAQS.ORG makes no guarantees as to the accuracy of the posts. Each post is the personal opinion of the poster. These posts are not intended to substitute for medical, tax, legal, investment, accounting, or other professional advice. FAQS.ORG does not endorse any opinion or any product or service mentioned mentioned in these posts.

 

<< Back to: comp.lang.c Answers (Abridged) to Frequently Asked Questions (FAQ)


[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]

© 2008 FAQS.ORG. All rights reserved.