main()在C和C++中定义函数的正确(最有效)方法是什么- int main()或void main()- 为什么?如果int main()那么return 1或return 0?
这个问题有很多重复,包括:
main()函数的有效签名是什么?main()函数void main()和int main()?main()在C++中的签名main()? - 对于C++,确实有一个非常好的答案.main()C语言中的函数样式main()C中的方法类型int main()vs void main()在C中有关:
int main() {
int y;
int x{ y = 5 };
//x is 5
}
Run Code Online (Sandbox Code Playgroud)
由于y = 5不是可计算的表达式,这怎么可能?
另外,为什么编译器或IDE不会抱怨main()不返回int?
我最近读到C ++中所有函数的默认返回类型是int。谷歌搜索并不能帮助我确认这一点。
因此:
int吗?我们来看看这段代码:
#include <iostream>
int foo(int i) {return i; }
int foobar(int z) {return foo(z);}
int main() {
std::cout << foobar(3) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
它用g ++ -std = c ++ 11编译好...并给出输出3.但是相同的输出由下式给出:
#include <iostream>
int foo(int i) {return i; }
int foobar(int z) { foo(z);}
int main() {
std::cout << foobar(3) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
它编译没有问题,但显然foobar错过了关键字返回.这是gcc 4.8.3中的错误还是我不知道某些c ++ 11原则?(在Fedora 20上运行)