把控制发回主站.Cc文件在我的c++项目从另一个源文件
Send control back to main.cc file in my c++ project from another souce file
是否可以使用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
)的内容。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- cmake在我的项目中所需的所有静态库都不成功
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 为什么我的for循环不能正确获取argv
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 0-1背包代码中的错误.我的代码中有什么错误
- 当我的阵列太大时出现分段错误
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 为什么二进制搜索在我的测试中不起作用
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- OpenGL在启用深度测试时不会丢弃我的碎片
- 为什么我的 std::ref 无法按预期工作?
- clang整洁10忽略了我的NOLINT命令
- 为什么我的删除节点函数实际上没有删除节点?