当函数在C++中"return"出函数时的行为

When a function behave when "return" out o of the function in C++

本文关键字:函数 return C++      更新时间:2023-10-16

我有一个代码。这样的:

int functionA (){
    Foo(**,**,**);
    return 0;
}

Foo()是一个巨大的函数(超过10,000行)。我一点也不明白。Foo函数包含一些多线程代码。

现在的问题是,如果我在Foo后面有"返回"代码,Foo可以正确运行。

如果我在Foo()和"return"之间插入一些其他代码(甚至是一个非常简单的cout代码)。Foo函数的行为会很奇怪(部分不能正确运行)。

我调试了3天。没有什么发现。

这就是所谓的竞争条件,您的一些代码可能会干扰Foo()的操作,如果没有更详细的问题描述,就不可能确定如何修复它。要么在线程操作进行时sleep(),要么阅读文档来确定是否可以安全地操作foo(),以及foo是否设置了一个标志来指示它何时是线程安全的。