Evo. G Tech Team Forum
Welcome to Evo. G Tech Team Forum. We have moved to a new website : www.evogtechteam.com

Thanks you.

by Evo. G Tech Team Management.

Join the forum, it's quick and easy

Evo. G Tech Team Forum
Welcome to Evo. G Tech Team Forum. We have moved to a new website : www.evogtechteam.com

Thanks you.

by Evo. G Tech Team Management.
Evo. G Tech Team Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

[C 和 C++]int main() VS void main()

Go down

[C 和 C++]int main() VS void main() Empty [C 和 C++]int main() VS void main()

Post by too wei October 23rd 2015, 01:33

main()函数是很特殊的,无论何时你都应该依照标准定义main()函数 (下面会提到使用什么main()函数),并把返回值定义为int
有时void main()的是可以出现的,但这仅限于某些特定的系统。如果你不敢肯定正在使用这些系统,不要使用void main()

C和C++在main()方面有着不同的标准
对于C来说:
根据C99标准,只有以下格式是被认同的

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

当然,如果你喜欢,你可以做一点变动
比如用一个自定义的类型或typedef代替int(当然这个类型必须被定义为int型),或者把*argv[]改为**argv

-使用第一个形式,如果不想在命令行下对程序输入参数  
-第二形式的两个参数argc,argv的名称是可以改变的,但我们已经习惯使用 argc 和 argv
-通常,main()函数的返回类型必须为int(为了返回整形值作为传递给调用者的一个返回码)

对于C++来说
C++接受以下方式

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

-第一种遵循C99标准
-第二种适用于不需要访问命令行参数的环境,相当于C99中的int main(void)

PS: return必须返回一个int型数值,默认返回0(标准中并没有要求)

int main()的标准扩展版
int main(int argc, char *argv[], char *envp[])

-main()函数可以在一些系统中提取一个额外的参数用来访问环境变量。
-这个用法不一定能在每个编译环境中行得通,所以小心使用 envp

too wei
Sponsor
Sponsor

Posts : 31
Points : 66331
Reputation : 0
Join date : 2015-04-21
Age : 25
Location : Johor

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum