void main与int main之间的区别.为什么不用 void main()

如题所述

对于C语言:在C89标准中,main() 的形式是可以接受的,当然使用如下的C99标准更明智,因为在这个标准中只有如下格式才能被接受:int main ( void )int main ( int argc, char *argv[] )我们可以对main函数做轻微的改变,比如我们可以用一个自定义的类型代替int(当然这个类型必须被定义为int型),还可以把*argv[]改为**argv,等等。如果我们不想在命令行下对程序输入参数,可以选择第一种形式。其实第二种形式的两个参数argc,argv的名称是可以改变的,但保持原样是更明智的选择。main()函数的返回类型必须为int;返回的整形值作为传递给调用者的一个返回码。(this allows a return code to be passed to the invoker)对于C++:以下是可以接受的格式:int main ( int argc, char *argv[] )int main ()第一种格式遵从C99标准;第二种格式在不需要通过命令行向程序传递参数时使用,与C99标准中规定的格式int main(void)效果相同。(C)int main()与int main(void)之间的区别:很多C程序员都曾搞错的一个概念,就是以为这样一个函数不接受任何参数:int foo();事实上,这个函数被认为可以接受未知个数的参数(译:可接受任意多的参数!)。正确的用法是在括号内添加关键字void。在C/C++正规的调用/返回函数中,如果你不想让一个函数返回任何值,你可以使用void定义返回类型。比如,一个不接受任何参数并且无任何返回值的函数原型可以像这样:void foo(void);一个常见的误解是,这种逻辑同样适用于main()函数。呵呵,事实并非如此,main()函数是很特殊的,无论何时你都应该依照标准定义main()函数(译:即使用int main()的形式!),并把返回值定义为int。有时void main()的例外形式是可以出现的,但这仅限于某些特定的系统。如果你不敢肯定正在使用这些系统,那么答案很简单,不能使用void main()的形式。如果你在论坛上写了像“void main”这样的代码而被警告,那么最好改过来。不要用"我的老师告诉我这么做是对的"之类的话来为自己开脱;老师们总是习惯犯错误(teachers have a bad habit of being wrong)。写安全的,合乎标准的代码,大家就可以专注于你程序中其它的问题而不是在这种规范方面的东西上浪费时间。好比是标准的扩展版,main()函数可以在一些系统中提取一个额外的参数用来访问环境变量。这个用法不能保证在每个编译环境中都行得通,所以使用 envp 这个参数是还是谨慎为妙。
温馨提示:内容为网友见解,仅供参考
无其他回答

void main与int main之间的区别.为什么不用 void main()
因为在这个标准中只有如下格式才能被接受:int main ( void )int main ( int argc, char *argv[] )我们可以对main函数做轻微的改变,比如我们可以用一个自定义的类型代替int(当然这个类型必须被定义为int型),还可以把*argv[]改为**argv,...

C语言void main()和void main()的区别?
返回值类型:void main()的返回值类型是void,表示不返回任何值;而int main()的返回值类型是int,通常用于表示程序的执行状态,一般约定返回0表示程序正常结束,非0表示程序出现了异常。标准要求:C语言标准规定int main()是C语言程序的标准入口,而不允许使用void main()。因此,如果需要编写符合标准的...

int main和void main的区别
int main和void main是C和C++编程语言中主函数的两种不同形式。区别包括返回值类型、标准规范、兼容性、可移植性等。1、返回值类型 int main有一个整数类型的返回值,表示程序的执行状态,一般约定返回0表示程序正常结束,非零值表示异常终止。而void main没有返回值。2、标准规范 根据C和C++的标准规范...

...void main()与int main()有什么区别?为什么有时还直接用main()?_百...
区别就是有无返回值。写代码时,函数有返回值,就用int,没有返回值就用void。有的编译器必须main要有返回值 int , 那就写成int main 。你可以都写成int main ,然后在后面加个return 0 ;他俩在作用上没什么区别。

void main()和int main(void)的区别
void main 和 int main的区别就是有无返回值。在int main 可以出现非 int 类型的东西。在写代码时,一个函数要么有返回值,要么没有返回值没有返回值就用void来表示。 main函数同样的,在没有返回值时加个void 。有的编译器必须main要有返回值 int , 那就写成int main 。至于什么时候需要哪种...

void main和int main有什么区别
void main 和 int main 主要有以下三个方面的区别:1、void main的返回值为空值(即没有返回值),int main的返回值为整数类型值。2、void main 可以用 int main代替,但是 int main 不能用 void main代替。3、有的编译器main必须要有返回值 int , 那就写成int main 。在使用中可以一律写成 ...

void main和int main有什么区别?
void main 和 int main的区别就是有无返回值。1、void定义的函数没有返回值,int定义的函数返回整型值。2、void,字面意思是“无类型”,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,有注释和限制程序的作用。

intmain和voidmain的区别
1、返回类型区别:intmain()是一种函数定义,它的返回类型是整数类型(int)。这意味着在程序执行完毕后,main函数会返回一个整数值作为程序的退出状态码,用于表示程序的执行结果。voidmain()是另一种函数定义,它的返回类型是空类型(void)。这意味着在程序执行完毕后,main函数不返回任何值,也没有...

void main和int main的区别是什么?
void main 和 int main 的区别:1、void main没有返回值,int main有返回值 2、void main 可以用 int main代替。3、有的编译器main必须要有返回值 int , 那就写成int main 。

intmain和voidmain的区别
以C语言为例,intmain和voidmain的区别是:1、有无返回值:voidmain没有zd返回值,intmain有返回值。2、返回值类型:intmain返回int类型的数据,voidmain不返回。但是在C语言推荐写法中,建议使用intmain,因为在有的编译器虽然viodmain可以通过编译,但在其他编译器就会报错。为了代码拥有更好的可移植性...

相似回答