Sun*_*ner 3 c++ compiler-errors
我写了一个简单的函数来返回一个字符串让我在屏幕上显示.
static std::string myFun(int myId){
std::ostringstream stream;
int myStatus;
if(get_status(&myStatus)) stream << get_error();
else{
stream << "my status:" << myStatus;
}
return stream.str();
}
Run Code Online (Sandbox Code Playgroud)
代码本身可能并不重要.但我把它包含在以防万一.我遇到的问题是因为在我最初的尝试中,我忘了包含return语句
return stream.str();
Run Code Online (Sandbox Code Playgroud)
编译器编译没有错误,但是当我运行它时.该程序不断收到消息
Aborted(core dumped)
Run Code Online (Sandbox Code Playgroud)
我吓坏了,我搜索了stackoverflow并安装了valgrind和一切.然后我检查代码,我意识到我只是忘记包含return语句!我希望编译器能够注意到这些错误.
有人可以向我解释为什么编译器无法检测到错误吗?
未定义return在非void函数的所有控制路径上没有值的代码的行为.(C++有很多未定义的构造;也许是开发人员喜欢最大性能和可移植性的结果.)
一个好的编译器会警告你这个,甚至会提供设置来将警告(以及其他警告)升级为错误.请参阅编译器文档.
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |