我有一个练习,我必须实现一个函数,它将一个参数函数指针<div class="tree-without-leaves">
<div class="tree-with-leaves">
</div>
</div>
<button>Click Me</button>
作为参数,一个参数指向所述指针fun
指向的函数和一个整数{ {1}}。如果参数在parameter
秒之前终止,则函数period
的执行指向fun
时,此函数将返回1,否则返回0。
这两种解决方案是否相同?
parameter
和
period
我会说是,但我想澄清我可能有的任何疑问。
答案 0 :(得分:1)
这些不一样。
在第一个示例中,如果触发警报,fun
由于调用siglongjmp
而无法正常退出。在第二个示例中,警报将设置返回值的标志,但fun
将继续运行完成。
另外,你有一个错误:
if(sigsetjmp(env,1) == 0)
fun(parameter);
sigaction(SIGALRM, &old, NULL);
else
return 0
return 1;
您在if
和else
区块周围缺少大括号,在第一个;
之后错过了return
。另外,我相信你根据对函数应该做什么的描述来混合返回值。
固定代码:
if(sigsetjmp(env,1) == 0) {
fun(parameter);
sigaction(SIGALRM, &old, NULL);
} else {
return 1;
}
return 0;