把控制发回主站.Cc文件在我的c++项目从另一个源文件

Send control back to main.cc file in my c++ project from another souce file

本文关键字:c++ 我的 项目 源文件 另一个 文件 控制 主站 Cc      更新时间:2023-10-16

是否可以使用GOTO语句将控制权从其他文件发送到主文件,如果是,请告诉。如果不行,请告诉我另一种方法。

main.cc

{
    outer:                   // label where I want to return 
    callingfunc()
    //control go into calling func
}

来源。cc//带有类的另一个源文件

class myclass
{
    public:
    callingfunc();
};
callingfunc()
{
    some code 
    goto outer;               //from here I want to send control to outer label in file **main.cc**
}

您只能在同一个函数中使用goto标签,并且在多个源文件中破坏函数是非常糟糕的做法(只有当#include d文件包含函数的第一部分时才有可能)。要转移执行,您通常要使用函数调用(无论是硬编码函数还是由例如函数指针或std::function<>标识的函数)和return语句,有时throw和异常,以及非常非常罕见的像setjmp/longjmp这样的不寻常的东西(如果你需要问这个问题,你不应该玩那些后面的函数)。你应该更多地解释你的程序——最好是发布一些代码——如果你想要具体的建议,什么适合你的需要。

更新:现在你已经发布了一些代码,你可以考虑这样做…

// source.h
enum Flow { Outer, Continue }; // whatever names make sense to you...
Flow callingfunc();
// main.cc
#include "source.h"
if (callingfunc(...) == Outer) goto outer;
// source.cc
#include "source.h"
Flow callingfunc() { ...; return Outer; ... return Continue; }

最好试着找一个比"外部"更好的名字…传达callingfunc发现的情况或其建议的后续处理(例如Timeout, Can_Retry, Model_Unsolvable)的内容。