【发布时间】:2013-07-29 14:13:19
【问题描述】:
好的,我正在尝试在 C++ 的不同线程中运行一个函数。它不接受任何参数,它是一个 void 函数。所以当我看到这个警告说:
warning: function declared 'noreturn' should not
return [-Winvalid-noreturn]
我很惊讶。我正在为我的线程使用 pthread。这是我的函数的声明:
void* checkLogKext(void*);
这里是我调用函数的地方:
pthread_t t1;
pthread_create(&t1, NULL, &checkLogKext, NULL);
这是我的功能:
void* checkLogKext(void*) {
ifstream logKext("/LogKextUninstall.command");
if (logKext.is_open()) {
// Do something
}
}
【问题讨论】:
-
它不是一个 void 函数:它返回
void*类型的东西(并且需要一个参数)。 -
哦,我通过在我原本打算做的函数中放置一个无限循环和睡眠来摆脱错误,所以我修复了它,但我不知道它是如何工作的解释一下?
标签: c++ multithreading pthreads void