c++ - 即使没有返回语句也返回 C++ 值
问题描述
考虑以下程序:
int b(int in)
{
return in + 1;
}
int a(int in)
{
b(in); // return statement forgotten
}
int main()
{
std::cout << "returned: " << a(5) << "\n";
}
VC++ 给出了关于缺少“返回”的错误。英特尔编译器仅发出警告(在非无效函数“a”末尾缺少返回语句),但最令人惊讶的是,在运行时代码确实返回了正确的值,并且打印输出为:
returned: 6
怎么来的?
使用英特尔 C++ 编译器 19.0
解决方案
推荐阅读
- unity3d - 如何降低 Unity 水粒子飞溅效果?
- java - 字符串未显示在 JFrame 中
- makefile - 从 Makefile 中的目标名称中提取宏参数
- c++ - 如何修复分段错误运行时错误
- entity-framework - 当 NuGet 安装实体框架时,会出现一个奇怪的问题
- vb.net - 多行降序文本框
- html - HTML/CSS 弹出抖动 - 弹出后立即弹出图像 [已解决]
- javascript - iOS (12.1) 中的 WebRTC Safari。连接第二个远程流时,第一个直播暂停
- elasticsearch - Elasticsearch 转义斜线
- nginx - 如何使用 nginx http/2 服务器推送从 API 调用向客户端发送 json 有效负载