gpt4 book ai didi

C (gcc) 警告 : initialization from incompatible pointer type when calling pthread_cleanup_push()

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

Ubuntu Linux 9.04 下的 gcc 版本 4.3.3 以防相关。

这是有问题的代码:

pthread_cleanup_push(ctl_cleanup, NULL);

ctl_cleanup() 定义为

void* ctl_cleanup(void *arg);

在类似情况下,还有其他情况会弹出此警告。如果我调用类似的东西,也会出现警告

pthread_cleanup_push(pthread_mutex_unlock, (void *)&m);

其中 m 是 pthread_mutex_t 类型。警告内容如下:

warning: initialization from incompatible pointer type

我不明白。我在没有警告的情况下使用 void 指针传递了其他东西(例如,将参数传递给 pthread 时)。有人可以帮帮我吗?

最佳答案

void ctl_cleanup(void *arg);

以上就是您要找的原型(prototype)。它返回 void,而不是指向 void 的指针。

函数中额外的 * 是因为它接受一个指向函数的指针,该函数接受一个 void* 参数并返回 void。

关于C (gcc) 警告 : initialization from incompatible pointer type when calling pthread_cleanup_push(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119140/

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