为什么下面的编译在GCC 4.8 (g++)中?它不是完全不正常吗?
void test(int x)
{
    return test(3);
}
int main() {}test的结果,它不存在test返回一个值从根本上来说,这两者都不可能--据我所知,不仅仅是UB --使用void返回类型。
我得到的唯一警告是x未使用,甚至没有添加任何非标准的隐式返回类型。
现场演示
发布于 2014-01-04 16:55:37
这是标准所允许的(第6.6.3/3节)
只有返回类型为cv的函数才能使用带空类型表达式的返回语句;表达式是在函数返回给调用方之前计算的。
https://stackoverflow.com/questions/20923800
复制相似问题