sho*_*app 0 c++ return function
为什么gcc 4.6.1在没有return语句的情况下编译以下函数?
uint32_t& siof_solution() {
static uint32_t example = (uint32_t) 7; // Doesn't really matter
// return example;
}
Run Code Online (Sandbox Code Playgroud)
它回来了1. 我看到了它.
即使他们说C++函数也是如此,它们不需要返回值.如果他们不这样做,结果是未定义的行为.在你的情况下,通过Sheer Dumb Luck,代码似乎正在工作,但它不便携而且不安全.这可能会崩溃,返回垃圾指针,导致调试错误等.
我认为这个决定的原因主要是与C的向后兼容,尽管我不确定.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |