当函数在C++中"return"出函数时的行为
When a function behave when "return" out o of the function in C++
我有一个代码。这样的:
int functionA (){
Foo(**,**,**);
return 0;
}
Foo()是一个巨大的函数(超过10,000行)。我一点也不明白。Foo函数包含一些多线程代码。
现在的问题是,如果我在Foo后面有"返回"代码,Foo可以正确运行。
如果我在Foo()和"return"之间插入一些其他代码(甚至是一个非常简单的cout代码)。Foo函数的行为会很奇怪(部分不能正确运行)。
我调试了3天。没有什么发现。
这就是所谓的竞争条件,您的一些代码可能会干扰Foo()的操作,如果没有更详细的问题描述,就不可能确定如何修复它。要么在线程操作进行时sleep(),要么阅读文档来确定是否可以安全地操作foo(),以及foo是否设置了一个标志来指示它何时是线程安全的。
相关文章:
- C++函数中的精确"return"矩
- "Missing type specifier - int assumed"无法通过向主函数添加"return 0"来解决
- 如何解决类成员函数中的"return a value"错误?
- 错误:调用 .. at return 语句时没有匹配函数
- 当你只使用 return 时,函数返回什么类型;在 c++ 中
- 编译器说这个函数必须返回一个值,但我已经有一个 return 语句
- 如果 return 语句在带括号的循环中,错误可能会到达非 void 函数的末尾,但不会显示在没有括号的循环的情况下
- return 语句,该语句调用在返回 void 的函数中返回 void 的函数
- 调用函数后返回 0 而不"return(0);"
- 为什么在"return 0"之后调用析构函数?
- 为什么"return 0"适用于在函数中返回指针,但不适用于参考?
- return语句中的C++constexpr函数
- 用return语句结束析构函数安全吗
- 控制达到非空隙函数的末端[-werror = return-type](只是一个简单的法官)
- 复制 ELISION:在 return 语句中使用三元表达式时未调用移动构造函数
- 当我在递归函数中调用 return 时,我的程序意外完成
- 返回 std::string 的函数在没有 return 语句的情况下崩溃,这与返回 int 而不返回语句的函数不同
- 为什么构造函数"return"这个指针?
- Boost.Type_erasure:成员函数return _self
- 我们必须在函数"return"末尾写什么?在 C++ 中