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