void *testBlock(void*blk)
{
sleep(2);
printf("testBlock : Begin to exec blk.\n");
DemoBlock demoBlk = (DemoBlock)blk;
demoBlk();
returnNULL;
}
在这个示例中,位于test()函数的block类型的变量blk就作为函数参数传递给testBlock。
正常情况下,这段代码可以成功运行,输出:
[cpp]
Before test()
threadreturns : 0
testBlock : Begin to exec blk.
2048
After test()
如果按照注释,将test()函数最后一行改为休眠1s的话,正常情况下程序会在输出如下结果后崩溃:
[cpp]
Before test()
threadreturns : 0
After test()
testBlock : Begin to exec blk.