我最近读到C ++中所有函数的默认返回类型为int
。谷歌搜索并不能帮助我确认这一点。
所以:
int
中所有函数的默认返回类型吗?答案 0 :(得分:8)
- 真的是C ++
int
中所有函数的默认返回类型吗?
否。
- 如果没有,那么C ++中的函数是否存在任何此类默认返回类型?
否。
让编译器帮助您。如果您尝试按照以下方式做某事,
noReturnType(int a, int b)
{
std::cout << a + b << "\n";
}
您会得到例如
error: C++ requires a type specifier for all declarations noReturnType(int a, int b) ^
,可以通过在函数声明/定义(或您打算返回的任何类型)前面添加void
来缓解。可能混淆的可能是让编译器推断返回类型的能力。这个示例在C ++ 14下可以很好地编译:
auto deduceReturnType(int a, int b)
{
return a + b; // return type is int
}
但这与默认返回类型无关,也不能在此处省略auto
。
答案 1 :(得分:2)
K&R C隐含了int
。
//assumed to return int
main(argc, argv)
char *argv[];
//not declaring argc's type so it's implicitly assumed to be int
{ return 0; }
ANSI C和C ++没有。