C++ 调用返回类型为的函数时出现非法指令错误

C++ 调用返回类型为的函数时出现非法指令错误,c++,C++,比如说,我有一个返回类型为空的函数 int g() {} 当我调用g时,我得到一个非法指令错误。如果我将函数更改为 void f() {} 一切都很好 这种奇怪行为的原因是什么?代码如下所示: WindowID w = e.createWindow(800, 800); w.f(); w.g(); 其中createWindow()创建一个新线程。可能是有螺纹的东西吗?我更改了g()的名称和返回类型,但总是收到非法指令。这对我来说似乎是一个奇怪的错误,它一定很简单。但是什么呢?如果我很了解你

比如说,我有一个返回类型为空的函数

int g() {}
当我调用g时,我得到一个非法指令错误。如果我将函数更改为

void f() {}
一切都很好

这种奇怪行为的原因是什么?代码如下所示:

WindowID w = e.createWindow(800, 800);
w.f();
w.g();

其中createWindow()创建一个新线程。可能是有螺纹的东西吗?我更改了g()的名称和返回类型,但总是收到非法指令。这对我来说似乎是一个奇怪的错误,它一定很简单。但是什么呢?

如果我很了解你的问题,那绝对不是奇怪的行为


当您说一个函数有一个返回类型int时,您必须在所有情况下从该函数返回一个整数。如果返回类型为void,则只能创建空函数。

如果我很理解您的问题,这绝对不是一种奇怪的行为


当您说一个函数有一个返回类型int时,您必须在所有情况下从该函数返回一个整数。如果返回类型为void,则只能创建空函数。

如果我很理解您的问题,这绝对不是一种奇怪的行为


当您说一个函数有一个返回类型int时,您必须在所有情况下从该函数返回一个整数。如果返回类型为void,则只能创建空函数。

如果我很理解您的问题,这绝对不是一种奇怪的行为


当您说一个函数有一个返回类型int时,您必须在所有情况下从该函数返回一个整数。只有返回类型为void时,才能创建空函数。

它与线程无关。不从非void函数返回是未定义的行为。它与线程无关。不从非void函数返回是未定义的行为。它与线程无关。不从非void函数返回是未定义的行为。它与线程无关。不从非空函数返回是未定义的行为。该死,没错。为什么我以前从来没有犯过这个错误?我肯定有一个返回类型的函数,以前没有返回!该死,没错。为什么我以前从来没有犯过这个错误?我肯定有一个返回类型的函数,以前没有返回!该死,没错。为什么我以前从来没有犯过这个错误?我肯定有一个返回类型的函数,以前没有返回!该死,没错。为什么我以前从来没有犯过这个错误?我肯定有一个返回类型的函数,以前没有返回!