Different conventions for main() in C -
this question has answer here:
- what should main() return in c , c++? 18 answers
my exposure programming has been java,where have not encountered (up now) different conventions writing main method.i have been following sources learning c (k&r , c programming modern approach) use different forms of main method (function).
k&r version now:
main() { blah blah blah; }
c programming modern approach
int main() { blah blah blah; return 0; }
or
int main() { blah blah blah; //returns nothing }
to make matters more confusing have seen people :
int main(void) { blah blah blah; }
while either returned 0 or did not. don't in uneducated assumption think standards issue maybe bit more conceptual or deep. shed light on issue?
k&r style outdated , isn't correct according c standard more.
valid signatures
int main(void)
and
int main(int argc, char *argv[])
or, equivalent because array type in function adjusted pointer type anyways:
int main(int argc, char **argv)
the signature
int main()
happens valid well, because empty argument list means any number of arguments, aren't described *). afaik, subject change, don't write way. writing
void
how express this function doesn't take arguments in c.implementations of c free provide other implementation-defined entry points. 2 listed above ones guaranteed standard.
c99 introduced special rule
main()
states if function doesn't return anything, value of0
returned implicitly. only in main, can skipreturn
. advice is: don't. it's confusing. opinion.
*) note different in c++, nothing between parantheses indeed means: no arguments.
Comments
Post a Comment