3

据我所知,ucontext提供更好的东西setjmp。但它已被弃用,现在已从 POSIX 规范中删除。那么它为什么会出现,又为什么会被移除呢?

4

1 回答 1

4

makecontextfrom的签名ucontext.h是:

void makecontext(ucontext_t *ucp, void (*func)(),
       int argc, ...);

请注意,它func使用空括号作为参数,但这是标准 C 中不推荐使用的功能:

C11(ISO/IEC 9899:201x) §6.11.6 函数声明符

使用带空括号的函数声明符(不是原型格式参数类型声明符)是一个过时的特性。

这就是它被弃用的原因(并且有点不幸)。

于 2013-12-26T03:49:17.547 回答