公告
财富商城
积分规则
提问
发文
2019-01-01 09:21发布
低头抚发
This question already has an answer here:
Does it matter which way I declare my C++ programs?
The difference is one is the correct way to define main, and the other is not.
main
And yes, it does matter. Either
int main(int argc, char** argv)
or
int main()
are the proper definition of your main per the C++ spec.
void main(int argc, char** argv)
is not and was, IIRC, a perversity that came with older Microsoft's C++ compilers.
https://isocpp.org/wiki/faq/newbie#main-returns-int
If you're going by the spec, then you should always declare main returning an int.
int
In reality, though, most compilers will let you get away with either one, so the real difference is if you want / need to return a value to the shell.
The point is, C programs (and C++ the same) always (should?) return a success value or error code, so they should be declared that way.
Bjarne Stroustrup made this quite clear:
The definition void main() is not and never has been C++, nor has it even been C.
void main()
See reference.
You should use int main. Both the C and C++ standards specify that main should return a value.
int main
For C++, only int is allowed. For C, C99 says only int is allowed. The prior standard allowed for a void return.
void
In short, always int.
最多设置5个标签!
The difference is one is the correct way to define
main
, and the other is not.And yes, it does matter. Either
or
are the proper definition of your
main
per the C++ spec.void main(int argc, char** argv)
is not and was, IIRC, a perversity that came with older Microsoft's C++ compilers.
https://isocpp.org/wiki/faq/newbie#main-returns-int
If you're going by the spec, then you should always declare
main
returning anint
.In reality, though, most compilers will let you get away with either one, so the real difference is if you want / need to return a value to the shell.
The point is, C programs (and C++ the same) always (should?) return a success value or error code, so they should be declared that way.
Bjarne Stroustrup made this quite clear:
See reference.
You should use
int main
. Both the C and C++ standards specify thatmain
should return a value.For C++, only int is allowed. For C, C99 says only int is allowed. The prior standard allowed for a
void
return.In short, always
int
.