如何使主要归还0?

时间:2014-02-03 17:40:04

标签: c visual-studio

void main()
{
    printf("hi\n");
    return 0;
}

当我从函数main返回一个返回类型为void的值时,编译器为什么不给出错误?

3 个答案:

答案 0 :(得分:1)

没有。它不能。你做错了。您不能从返回类型为void的函数返回任何内容。您的编译器应该发出警告:

[Warning] 'return' with a value, in function returning void [enabled by default] 

void main现在已经过时了。标准说明了main的定义。

5.1.2.2.1程序启动:

  

1程序启动时调用的函数名为main。实施宣布否   这个功能的原型。它应该使用返回类型int和no来定义   参数:

int main(void) { /* ... */ }
     

或有两个参数(此处称为argcargv,但可能有任何名称   使用,因为它们是声明它们的函数的本地函数):

int main(int argc, char *argv[]) { /* ... */ }
     

或等效的; 10)或其他一些实现定义的方式。

答案 1 :(得分:0)

主要特别。

严格来说应该是

int main(int, char**);

如果你偏离它(例如使用void),编译器可能会发出警告(如果你打开了警告)但是无论如何都会产生有效的代码。

编辑:显然int main()也有效。

答案 2 :(得分:0)

你或者你的编译器做错了。您无法从void函数返回值。编译器至少应该发出警告。