gpt4 book ai didi

c - makecontext 函数中的指针说明

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:58 25 4
gpt4 key购买 nike

作为我任务的一部分,我一直在实现一个用户线程库。我不明白 makecontext 函数:

makecontext(&(mainthread->threadctx),(void(*)(void))start_funct,1,args)

(void(*)(void))start_funct 到底是什么意思?为什么我必须这样写?我不能把它写成

makecontext(&(mainthread->threadctx),start_funct,1,args) ?

请耐心等待,我对指针还不太满意:)

最佳答案

void(*)(void) 表示“指向不带参数并返回 void 的函数的指针”。

因此 (void(*)(void))start_functstart_funct(我们可以假设是某种函数指针)` 转换为上述类型。 (有一个 very useful online tool 可以帮助您解决这个问题,直到您能够更自如地阅读声明)。

必须这样写,因为start_funct的签名不是void start_funct(void),所以需要强制转换。

关于c - makecontext 函数中的指针说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7867338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com