如果一个函数的返回类型不是
例如,
void
,但函数没有返回任何值,那么我猜编译器会返回一个垃圾值(可能被视为未初始化的值)。这是在编译时发生的,那么为什么不应该显示错误呢?例如,
int func1() {
return; // error
}
int func2() {
// does not return anything
}
第二个func2
应该会抛出一个错误,但它没有。有什么原因吗?我的想法是,可以把它看作是未初始化的值,所以如果我们需要在第二种情况下抛出错误,那么我们需要抛出错误,如果一个值没有被初始化,就像这样。 int i; // error
int i = 6; // okay
任何想法,还是这个问题是重复的?感谢您的帮助。